Bonjour à toutes et tous...
Nouveau sous Lazarus, j'ai un petit problème à vous soumettre :
J'ai une table dont la clef primaire est de type INTEGER auto-incrémenté.
Je souhaite récupérer la valeur de la clef primaire après insertion d'un nouvel enregistrement.
Voici mon code SQL :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 
insert into topics 
(id, code, label, parent_topic, description)
values
(DEFAULT, :pcode, :plabel, :pparent_topic, :pdescription)
returning id
Et le code Pascal :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
with zqAddTopic do
     begin
       paramByName('pcode').asString := Code;
       paramByName('plabel').asString := Lbl;
       paramByName('pparent_topic').asInteger := ParentTopic;
       paramByName('pdescription').asString := Description;
       ExecSQL;
       result := fieldByname('id').asInteger;
     end;
Ce code fonctionne mais... id vaut toujours 0 alors que les lignes sont bien créées et que le compteur est bien incrémenté...
J'ai également tenté un
voire même
en tentant de récupérer la valeur du paramètre...
Sans succès...
Quelqu'un a-t-il une piste à suggérer ?

versions: Lazarus v 0.9.31 et Zeos Lib 6.51

Merci d'avance,

Michel