Interbase compteur auto-incrementé

cs_LATERRIERE Messages postés 1 Date d'inscription samedi 21 février 2004 Statut Membre Dernière intervention 21 février 2004 - 21 févr. 2004 à 19:44
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 - 22 févr. 2004 à 19:09
avec delphi ou builderc++ et interbase comment créer un champ auto-incremente. Un petit exemple merci

1 réponse

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 33
22 févr. 2004 à 19:09
Ce n'est pas Delphi ou C++ Builder qui vont permettre de créer un champ autoincrémenté mais l'utilisation de IBConsole.
Pour cela, il faut créer un trigger. Exemple, avec une table comportant un seul champ :
CREATE TABLE TutoTrigger(
Champ1 NUMERIC(18,0) NOT NULL,
CONSTRAINT PK_TutoTrigger1 PRIMARY KEY (Champ1));

CREATE GENERATOR TutoTrigger_Champ1_INC;
SET GENERATOR TutoTrigger_Champ1_INC TO 0;

SET TERM !! ;
CREATE TRIGGER SET_TutoTrigger_Champ1 FOR TutoTrigger
BEFORE INSERT AS
BEGIN
IF (NEW.Champ1 IS NULL) THEN NEW.Champ1 = GEN_ID(TutoTrigger_Champ1_INC, 1);
END !!
SET TERM ; !!

Tu peux aussi regarder la base de démo Employee.gdb livrée avec Delphi et obtenir le code de création des triggers avec la commande DataBase/View metadata. Il faudra juste faire le tri au mileu de tout le code généré.
0
Rejoignez-nous