19.02.2017, 19:38
|
Прохожий
|
|
Регистрация: 18.02.2017
Сообщения: 11
Версия Delphi: Delphi 7
Репутация: 10
|
|
Цитата:
Сообщение от Alegun
Можно было бы посоветовать для блока with DM.IBQuery2 do подготовить запрос предварительным разбором и оптимизацией типа
Код:
...
Close;
if not Prepared then Prepare;
...
но делфя и так автоматом подготавливает его при каждом выполнении SQL и поэтому, даже если так и делать, то приложению на это фиолетово, зато можно рекомендовать в конце блока добавить проверку на ашипки
Код:
try
ExecSQL;
except
on e: EDataBaseError do MessageDlg(e.Message, mtError, [mbOK], 0);
end;
|
я сделала по совету:
Код:
with DM.IBQuery2 do
BEGIN
Close;
SQL.Clear;
SQL.Add('update calc set step = :step, criterion = :criterion,');
SQL.Add(' x1optim = :x1optim, x2optim = :x2optim, foptim = :foptim ');
SQL.Add('where calcnum = :calcnum');
Params.ParamByName('calcnum').Value := CALCNUM;
Params.ParamByName('step').Value := (itcount/2.0) -1;
Params.ParamByName('criterion').Value := 1.8;
Params.ParamByName('x1optim').Value := 21; //áðàòü ïîñëåäíþþ èòåðàöèþ èç áàçû..
Params.ParamByName('x2optim').Value := 21; //áðàòü ïîñëåäíþþ èòåðàöèþ èç áàçû..
Params.ParamByName('foptim').Value := 0.11 ; //áðàòü ïîñëåäíþþ èòåðàöèþ èç áàçû..
//ExecSQL;
try
** ExecSQL; //!!!!!!!!!!!!!!!!!!! illegal character in input file: ' ' ($A0)
* except
* **on e: EDataBaseError do* MessageDlg(e.Message, mtError, [mbOK], 0);
*end;
Как может возникать такая ошибка вообще!?!
|