-
Цукор5 (14.09.16 10:50) [0]Добрый день.
Есть такой код:
IBSQL1.SQL.Add('INSERT INTO NEWLENTA VALUES (GEN_ID(IDNEWLENTA,1),:DEVICEID, ...');
IBSQL1.ParamByName('DEVICEID').AsInteger:=12345;
...
Где-то в коде, при выполнении запроса происходит исключение (я его улавливаю в блоке try except). Моя задача разобраться, что не так с запросом или переданным в запрос параметром.
Но как его достать?
IBSQL1.SQL.Text — вернет просто запрос без значений параметров.
А как же получить полноценный запрос с параметрами? Т.е. строку: INSERT INTO NEWLENTA VALUES (GEN_ID(IDNEWLENTA,1),12345, ...
Спасибо! -
iop © (14.09.16 11:07) [1]параметры - это параметры.
это не макроподстановка.
нигде и никогда ты не найдешь текста запроса с подставленными значениями параметров. -
Цукор5 (14.09.16 11:29) [2]Понял.
Тогда хотя бы понять, на каком из запросов падение.
Я правильно понимаю, что следующий код подскажет где проблема?
try
IBSQL1.SQL.Add('...');
IBSQL1.ExecQuery;
IBSQL1.SQL.Add('...');
IBSQL1.ExecQuery;
IBSQL1.SQL.Add('...');
IBSQL1.ExecQuery;
except
Log.Save('Ошибка при выполнении запроса:' + IBSQL1.SQL.Text)
end -
iop © (14.09.16 11:39) [3]except
on e:exception do
Log.Save(e.message + #13#10 + IBSQL1.SQL.Text)
end