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é)
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 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;
vos idées et suggestions sont évidemment les bienvenues
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;
et ne vous étonnez pas si je ne réponds pas très vite, je suis
en déplacement...
merci d'avance.
Partager