Do you know why the block of code bellow will negate the «Could not convert variant of type (Null) into type (OleStr)» on some computers, not all of them but 3 out of ten computers generate the error message.
function GetWMIstringSW(const WMIClass, WMIProperty:string): string;
const
wbemFlagForwardOnly = $00000020;
var
FWbemObjectSet: OLEVariant;
FWbemObject : OLEVariant;
oEnum : IEnumvariant;
iValue : LongWord;
LNode : TTreeNode;
LNode2 : TTreeNode;
begin
Result:='';
FWbemObjectSet:= FWMIService.ExecQuery(Format('Select %s from %s',[WMIProperty, WMIClass]),'WQL',wbemFlagForwardOnly);
oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
while oEnum.Next(1, FWbemObject, iValue) = 0 do
begin
if not VarIsNull(FWbemObject.Properties_.Item(WMIProperty).Value) then
Result:=FWbemObject.Properties_.Item(WMIProperty).Value;
LNode := ClientForm.TreeView1.Items.AddChild(Node, Format('%s',[String(FWbemObject.Name)]));
LNode2 := ClientForm.TreeView1.Items.AddChild(LNode, Format('%s',[String(FWbemObject.Version)]));
FWbemObject:=Unassigned;
end;
end;
The function is then executed at FormCreate:
GETWMIstringSW('Win32_Product','Name');
Thank you so much for your help.
mrBatch 0 / 0 / 0 Регистрация: 23.03.2014 Сообщений: 18 |
||||
1 |
||||
23.06.2014, 23:21. Показов 10737. Ответов 17 Метки нет (Все метки)
Здравствуйте. При работе программы вылетает ошибка «Could not convert variant of type «NULL» into type «OleStr» «, когда пользователь нажимает кнопку, в которой содержится только строка:
По идее кнопка должна добавлять в таблицу базы данных строку, которая потом будет заполнятся данными из компонентов типа Edit и Memo. Спасибо.
0 |
пофигист широкого профиля 4662 / 3096 / 855 Регистрация: 15.07.2013 Сообщений: 17,857 |
|
24.06.2014, 00:16 |
2 |
По идее кнопка должна добавлять в таблицу базы данных строку, которая потом будет заполнятся данными А почему тогда используешь ADOQuery, а не ADOTable?
0 |
0 / 0 / 0 Регистрация: 23.03.2014 Сообщений: 18 |
|
24.06.2014, 23:49 [ТС] |
3 |
Использую ADOQuery, потому что работаю с запросами. В программе вообще нет компонентов ADOTable.
0 |
пофигист широкого профиля 4662 / 3096 / 855 Регистрация: 15.07.2013 Сообщений: 17,857 |
|
25.06.2014, 02:30 |
4 |
Использую ADOQuery, потому что работаю с запросами. А сам понимаешь что делаешь? Или используешь» натыренный» код без всякого понимания?
0 |
0 / 0 / 0 Регистрация: 23.03.2014 Сообщений: 18 |
|
25.06.2014, 02:43 [ТС] |
5 |
Возможно, я что-то не понимаю. Иначе бы не писал на форум. Если можно ближе теме. Как правильно использовать ADOQuery для добавления строки в таблицу? Что конкретно приводит к ошибке? Спасибо.
0 |
пофигист широкого профиля 4662 / 3096 / 855 Регистрация: 15.07.2013 Сообщений: 17,857 |
|
25.06.2014, 02:52 |
6 |
Как правильно использовать ADOQuery для добавления строки в таблицу? Если хочется «добавлять в таблицу базы данных строку, которая потом будет заполнятся», то это будет очень сложное извращение.
Возможно, я что-то не понимаю Возможно. Представь свою задачу максимально полно.
0 |
0 / 0 / 0 Регистрация: 23.03.2014 Сообщений: 18 |
|
25.06.2014, 03:06 [ТС] |
7 |
Во-первых, объясни, пожалуйста, почему не стоит использовать ADOQuery в моих целях?
0 |
пофигист широкого профиля 4662 / 3096 / 855 Регистрация: 15.07.2013 Сообщений: 17,857 |
|
25.06.2014, 03:32 |
8 |
Во-первых, объясни, пожалуйста, почему не стоит использовать ADOQuery в моих целях? Ну как бы это не требует объяснения. Квери — это всегда некая выборка из набора данных по некоторому/некоторым критериям.
Во-вторых, сложность в том, что я не знаю в чем заключается проблема, я планировал, что мне на форуме подскажут, что-то Так покажи код и объясни задачу. Неужели это сложно?
0 |
mrBatch 0 / 0 / 0 Регистрация: 23.03.2014 Сообщений: 18 |
||||
25.06.2014, 04:03 [ТС] |
9 |
|||
Нет, не сложно. Пожалуйста. Мне показалось, что скидывать такой больший кусок кода не лучшая идея.
0 |
327 / 230 / 55 Регистрация: 30.05.2014 Сообщений: 682 |
|
25.06.2014, 07:35 |
10 |
Во-вторых, сложность в том, что я не знаю в чем заключается проблема Проблема в том, что SQL запрос на выборку обычно возвращает набор, не предназначенный для редактирования. Если в этом коде заменить ADOQuery на ADOTable, с высокой степенью вероятности он заработает.
1 |
0 / 0 / 0 Регистрация: 23.03.2014 Сообщений: 18 |
|
25.06.2014, 20:54 [ТС] |
11 |
Т.е. мне еще нужно добавить в программу компонент ADOTable? И использовать ADOQuery, когда нужно получить из таблицы набор данных, а ADOTable, когда нужно внести данные в таблицу?
0 |
327 / 230 / 55 Регистрация: 30.05.2014 Сообщений: 682 |
|
26.06.2014, 03:47 |
12 |
Т.е. мне еще нужно добавить в программу компонент ADOTable? И использовать ADOQuery, когда нужно получить из таблицы набор данных, а ADOTable, когда нужно внести данные в таблицу? Если это данные одной таблицы из локальной базы — то проще все делать через ADOTable, и отображение и редактирование.
0 |
3452 / 2091 / 666 Регистрация: 29.05.2013 Сообщений: 8,955 |
|
26.06.2014, 08:21 |
13 |
Не в том дело, что вам еще надо добавить AdoTable, а в том, что вы работаете с AdoQuery как с AdoTable — вы используете методы и свойства от класса TADOTable. А что касается работы с AdoQuery, то ваш оппонент во несколько неправ. В большинстве случаев работа с AdoQuery проще, быстрее, а частенько и просто иной альтернативы и не предусматривает. Но работать с этим классом надо конечно изначально правильно.
0 |
327 / 230 / 55 Регистрация: 30.05.2014 Сообщений: 682 |
|
26.06.2014, 08:35 |
14 |
В большинстве случаев работа с AdoQuery проще, быстрее, а частенько и просто иной альтернативы и не предусматривает. И предполагает несколько иной подход к работе с базой, что требует несколько другого уровня представления о SQL. Почему и предлагается для запросов по одной таблице локальной базы заменить Query на Table и почитать книгу, в которой описана разница
0 |
ZfoxAK 668 / 558 / 242 Регистрация: 26.11.2012 Сообщений: 2,190 |
||||||||||||
26.06.2014, 11:19 |
15 |
|||||||||||
Вот этот код мне не ясен
Если хотите получить данные из записи
Для работы через ADOQuery используются SQL запросы Select для выборки данных Если использовать как пытаетесь вы то лучше делать так
0 |
327 / 230 / 55 Регистрация: 30.05.2014 Сообщений: 682 |
|
26.06.2014, 13:37 |
16 |
Если использовать как пытаетесь вы то лучше делать так Есть уверенность, что это сработает? Про backend и схему ни слова не было. Ну и просто ИМХО — плохому учите.
0 |
ZfoxAK 668 / 558 / 242 Регистрация: 26.11.2012 Сообщений: 2,190 |
||||||||
27.06.2014, 05:42 |
17 |
|||||||
Есть уверенность, что это сработает? uglyPinokkio, вы правы не будет. ….. малость напутал
или
Про backend и схему ни слова не было. Ну и просто ИМХО — плохому учите. ИМХО Вроде форум, а не университет что бы учить.
0 |
0 / 0 / 0 Регистрация: 23.03.2014 Сообщений: 18 |
|
27.06.2014, 20:20 [ТС] |
18 |
Вроде решилось. Проблема состояла в том, что в таблице были пустые ячейки. Спасибо, вам за помощь.
0 |
Программа Retail Declaration более не поддерживается.
Для работы с ЕГАИС рекомендуем использовать Контур.Маркет.
Если при попытке распроведения документа в программе возникает ошибка Could not convert variant of type (Null) into type (Integer),
то возможны 2 причины
- Не настроен УТМ для подразделения декларанта, к которому привязан документ.
- В программе удален декларант, к которому привязан документ.
Для решения проблемы выполните следующие шаги:
- Проверьте, настроен ли УТМ для подразделения декларанта, к которому привязан документ, по инструкции
- Если УТМ настроен и ошибка сохраняется, то составьте обращение в техподдержку, приложив скриншот ошибки, описание действий, которые приводят к данной ошибке, базу данных программы обязательно в архиве, не бэкап (Инструкция по выгрузке базы Retail Declaration).
Вы определились с выбором?
Перейти к оформлению заказа
-
Summary
-
Files
-
Reviews
-
Support
-
Code
-
Cvs
-
Tickets ▾
- Feature Requests
- Bugs
-
News
-
Discussion
Menu
▾
▴
"Could not convert variant of type (OleStr) i
Created:
2009-02-26
Updated:
2019-06-05
-
Hi everybody,
I get the following error message opening an UML project done by project partners using StartUML 5.0.2.1570:
«Could not convert variant of type (OleStr) into type (Double)».
I use the same StarUML version, and I can open open the sample projects without problems.
Thank you very much in advance for any hints!
Best regards
Marco
-
I have exactly the same problem. Is there already any solution??
-
Solution for french desktop in windows XP :
Panneau de configuration => Options régionales => personnaliser :
Dans le champ «symbole décimal» , remplacer «,» par «.»Solution is to change windows decimal symbol from «,» to «.» in control panel.
Control panel -> local options -> personnalise — decimal symbol = «.»
It works for me.
Maybe a bug in StarUML ? THis soft whould force «.» decimal symbol use ?
-
I found another solution in case you can’t or don’t want to change your
windows configuration in that way. There is a script called LocalFix.bat (from
http://www.cameel.freehost.pl/download.php) which is changing your settings temporary only for the program
start and reverting it again afterwards.In my case I had to modify the script and change ‘.’ and ‘,’ because for me it
was exactly the other way around.
-
Also found good solution that worked for me (same as Scneider — it is region error/setting):
Sometimes applications may cause this error:
Could not convert variant of type (Olestr) into type (Double)For example, the first time i saw this error was when i tried to load StarUML project. Reason is that decimal separators in application not match with decimal separators defined in system. To solve it, open Control Panel / Regional and Language Options / Regional Options / Customize and change value of «Decimal separator key». For example, if it was a comma, set it to point. (Tasmanian Fox)
Last edit: Meyburgh Hofmeyr 2019-06-05
Log in to post a comment.
Error Description:
The error you are receiving is due to a corrupted Collections database file for EasyWorship.
Resolution:
Here are the steps to resolve this:
- Open EasyWorship, click on Profiles, and then Profiles Manager.
- In the middle of the window, where it says Instance Location, click on the name of your profile highlighted in blue. (This will open a File Explorer window of your EasyWorship database folders.)
- Move the File Explorer window over to the side, and close out of the Profile Editor window, and then close out of EasyWorship.
- In the File Explorer window that opened, open the v6.1 folder, then the Databases folder, and finally the Data folder.
- Right-click the Collections.db file and click Rename.
- Rename it to Collections1.db.
- Close that File Explorer window and re-open EasyWorship.
- You will see a window pop up asking you to fix the data. Click the Fix Data button.
This should resolve your issue and you should now no longer receive that error message.
If this does not resolve your issue, please contact EasyWorship Support.
Create Support Ticket