Bonjour, je crée plusieurs applications avec Lazarus (2.2.2) et SQLite (sqlite3.dll 3.36.0) ,

et je suis tombé sur le problème suivant :

- je crée une requête d'update paramétrée avec un identifiant "UP1x"

- j'ajoute évidemment le paramètre lors de la procédure d'update, et je recois le message

"Le projet 'projet' a levé une classe d'exception "EDatabaseError'
avec le message : Parameter "UP1x" not found à l'adresse..." (fenêtre assembleur)

Ce que je ne comprends évidemment pas c'est que dans un autre projet j'ai exactement
les mêmes procédures et que ça marche sans problème...???


Récupérer le SQL (abrégé)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
function foUpdate_Irl(pTable : string) : string;
begin
 
   case pTable of
 
  'sites' : Result := 'UPDATE sites SET id:=UP1x, mail:=UP2x, site:=UP3x,' +
  '...,note:=UP8x,lien:=UP9x '+
  'WHERE lignes:= UP0x' ;
 
  end;
 
end;
Procédure d'update (abrégée)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
 
procedure TFormIrl.su_TableUpdate(pSQL : string);
begin
 
   ConnIrl.Close;
 
   QueryIrl.SQL.Clear;
   QueryIrl.SQL.Text := pSQL;
 
   QueryIrl.Params.BeginUpdate;
 
   QueryIrl.Params.ParamByName('UP1x').AsString := up1;
   QueryIrl.Params.ParamByName('UP2x').AsString := up2;
   QueryIrl.Params.ParamByName('UP3x').AsString := up3;
   ...
   QueryIrl.Params.ParamByName('UP8x').AsString := up8;
   QueryIrl.Params.ParamByName('UP9x').AsString := up9;
   QueryIrl.Params.ParamByName('UP0x').AsString := up0;
 
   QueryIRl.Params.EndUpdate;
 
   QueryIrl.ExecSQL;
   TransacIrl.Commit;
 
end;
vos idées et suggestions sont évidemment les bienvenues
et ne vous étonnez pas si je ne réponds pas très vite, je suis
en déplacement...
merci d'avance.