|
abtat
Участник
Сказали спасибо: +0/-0
Offline
Сообщений: 11
|
|
Ошибка в параметрах Update запроса при переходе с Windows XP на Windows 7
« : 15 Декабрь 2015, 22:31:02 »
|
|
В моем приложении написанном на С++ Builder 2010 в среде RadStudio имеется фрагмент с кодом:
TParameter* Param1;
TParameter* Param2;
TParameter* Param3;
TADOQuery* ADOQuery1;
String SQLTextUC = String (
"UPDATE Contract \
SET ContractItems = :ContrItems, \
ContractVolume = :ContrVolume \
WHERE \
ContractKey = :ContrKey");
ADOQuery1 = new TADOQuery(this);
ADOQuery1->Connection = BooksModule->ADOConnection1;
ADOQuery1->SQL->Add(SQLTextUC);
Param1 = ADOQuery1->Parameters->ParamByName("ContrKey");
Param1->DataType = ftInteger;
Param2 = ADOQuery1->Parameters->ParamByName("ContrItems");
Param2->DataType = ftInteger;
Param3 = ADOQuery1->Parameters->ParamByName("ContrVolume");
Param3->DataType = ftCurrency;
в который в цикле подставляются значения параметров и осуществляется корректировка двух полей таблицы Contract на СУБД MySQL:
Param1->Value = ObjectKey;
Param2->Value = NewItems;
Param3->Value = NewVolume;
ADOQuery1->Prepared = true;
ADOQuery1->ExecSQL();
В машине на Windows XP приложение работает нормально по крайней мере пару лет. Заменил машину на новую с Windows 7. При установке на ней RadStudio имел 2 ошибки, связанные с отказом RadStudio запускаться вторично без выключения машины и с фиктивной нехваткой памяти при загрузке Welcom картинки RadStudio. C помощью форумов с этим справился. А вот с передачей параметров в простейший запрос справиться не могу. При пошаговом исполнении на первой строке объявления Param1 возникает непонятная ошибка "Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом". Между тем на Windows XP все работает совершенно нормально и у меня в цикле прекрасно корректируются сотни записей базы.
Помогите, если кто-либо с подобным сталкивался!
|