2011-02-08 2 views
0

Quelqu'un peut-il m'aider et expliquer à mon pourquoi ce code se bloque sur l'instruction ExecSQL?Aide avec requête paramétrée (en utilisant Delphi 7 et 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

Peu importe, ma mauvaise, j'ai trouvé mon erreur – IElite

Répondre

0

je tente de définir une valeur qui existait déjà

Set TABLENAME =:ATableName 

En fait, je ne devais régler la lastId

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

Je ne peux pas croire que je l'ai fait