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 :
Et le code Pascal :
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
Ce code fonctionne mais... id vaut toujours 0 alors que les lignes sont bien créées et que le compteur est bien incrémenté...
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;
J'ai également tenté un
voire même
Code : Sélectionner tout - Visualiser dans une fenêtre à part returning id into pid
en tentant de récupérer la valeur du paramètre...
Code : Sélectionner tout - Visualiser dans une fenêtre à part returning id into :pid
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
Partager