Récupération d'un champ auto-incrémenté (PostgreSql)
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:
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:
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
Code:
returning id into pid
voire même
Code:
returning id into :pid
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