2011-02-08 2 views
0

Может ли кто-нибудь помочь мне и объяснить, почему этот код выходит из строя в инструкции ExecSQL?Помощь с параметризованным запросом (с использованием Delphi 7 и BDE)

function UpdateLastBankResponsesId(ADatabase: TDatabase; AValue: Integer): String; 
var 
AQuery2: TQuery; 
begin 
result:= ''; 
AQuery2:= TQuery.Create(nil); 
AQuery2.DatabaseName:= ADatabase.DatabaseName; 
with AQuery2 do 
begin 
SQL.Text:= 'UPDATE last_id Set TABLENAME =:ATableName, LASTID=:ALastId'; 
ParamByName('ATableName').AsString:= 'responses'; 
ParamByName('ALastId').AsInteger:= AValue; 
try 
ExecSql; //***** CRASHES HERE ***** 
except 
begin 
ExitCode:= 16; 
raise ECustomException.create('Error Updating Last Id table!'); 
end;//except 
end; //try 
end; //with 
AQuery2.Free; 
end; 
+0

Ничего, мой плохой, я нашел свою ошибку – IElite

ответ

0

Я пытался установить значение, которое уже существует

Set TABLENAME =:ATableName 

я на самом деле нужно было только поставил перед LASTID

UPDATE last_id SET LASTID=:ALastId WHERE TABLENAME =:ATableName 

Я не могу поверить, что я сделал, что

Смежные вопросы