Bonjour, Je suis sous XE2
Voici mon code.
C'est assez simple, je veux insérer une ligne et le returning doit me renvoyer l'id_ps_12 (clé primaire créé)
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
26
27
28
29
30
31
32
33 procedure TFUser.btn_getLasteInsertedIdClick(Sender: TObject); var Qry: TSQLQuery; begin // Set up your connection as above, and open it Qry := TSQLQuery.Create(nil); Qry.SQLConnection := tuto_d2010fb; // insert query Qry.SQL.Add('insert into PS_12 '); Qry.SQL.Add('(ID_PERS) '); Qry.SQL.Add(' values (''voiture'') '); Qry.SQL.Add('returning ID_PS_12 '); Qry.Active := true; // Qry.ParamByName('ID_PS_12').ParamType := ptOutput; try Qry.Prepared := true; Qry.Open; //Qry.ExecSQL() ; //Showmessage(Qry.fields[1].asstring); except // on E:TDBXError do begin on E: TDBxError do begin OutputDebugString(PChar('Erreur, nous n''avons pas pu insérer votre record' + ' | TFUser.getLastInsertId')); // Qry.Free; end; end; // outputDebugString (PChar('Record inserted = '+Qry.FieldByName('ID_PS_12').AsString)); // OutputDebugString(PChar(Qry.ParamByName('ID_PS_12').asString)); end;
J'utilise un Qry open pour avoir un retour
Le Qry.ExecSQL() ; ne semple pas me retourner quelque chose.
Pour le moment j'arrive à insérer la ligne mais pas à avoir un retour :-(
Je bloque complètement.
Merci pour votre aide
Bertrand
Partager