Bonjour à tous,
dans mon projet j'uttilises dbexpress & Interbase en local, ca marche très bien.
J'ai crée des champs auto incrémenté avec IBexpert(Un trigger et un Generator), cela fonctionne bien.
le champ en question est un id unique défini en clef primaire.
Après une insertion, IB génère bien l'id, mais je n'ai aucune idée de comment faire pour le récupérer ? connaissant le nom du generator ? par SQL ou y'a t'il une fonction permettant cela ?
J'ai essayé avec une procedure stockée du style :
Puis j'ai essayé, grâce à un TSQLStoredProcedure, de récupérer cette valeur, sans succès :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 CREATE PROCEDURE LAST_INSERTED_ID RETURNS ( LAST_INSERTED INTEGER) AS begin LAST_INSERTED = gen_id(gen_utilisateurs_id,1); end
Merci à vous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 DataModule1.SQLStoredProc1.Open; last_insert_id := DataModule1.SQLStoredProc1.Fields[0].AsInteger; ShowMessage('Id généré : '+IntToStr(last_insert_id));
Fred
Partager