Mettre un numéro pour chaque contact ds ma base

cs_kurt Messages postés 21 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 16 février 2003 - 26 janv. 2003 à 10:04
cs_kurt Messages postés 21 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 16 février 2003 - 26 janv. 2003 à 19:57
Voilà, en fait j'aimerais que à chaque contact de ma base [IB], soit attribué un numéro, mais je ne sais pas comment faire? j'ai un numéro d'autoincrémentation, mais il est nul, car il ne se remet pas à jour quand on supprime un contact...

Comment faire ??

Merci d'avance

4 réponses

cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
26 janv. 2003 à 17:25
As-tu créé une procédure déclenchée dans ta base de donnée, chargé de fourni un nouveau numéro à chaque insertion d'un enregistrement ?

SET TERM !! ;
CREATE TRIGGER SET_CUSTOMER_CUST_ID FOR CUSTOMER
BEFORE INSERT AS
BEGIN
IF (NEW.CUST_ID IS NULL) THEN NEW.CUST_ID = GEN_ID(CUSTOMER_CUST_ID_INC, 1);
END !!
SET TERM ; !!

Cet exemple crée un trigger SET_CUSTOMER_ID pour la table CUSTOMER et incrément l'ancien identifiant de 1 à chaque exécution.

May Delphi be with you
0
cs_kurt Messages postés 21 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 16 février 2003
26 janv. 2003 à 18:10
ok, mais étant donné que ça je ne l'ai pas, comment je faispour le rajouter ?
et où ?
MErci
0
cs_Delphiprog Messages postés 4297 Date d'inscription samedi 19 janvier 2002 Statut Membre Dernière intervention 9 janvier 2013 32
26 janv. 2003 à 18:40
Tu lances IBConsole et tu sélectionnes ta base de données.
Ensuite, tu sélectionnes Tools\Interactive SQL.
Tu saisis ton script, exemple :

CREATE GENERATOR CUSTOMER_CUST_ID_INC;
SET GENERATOR CUSTOMER_CUST_ID_INC TO 0;

SET TERM !! ;
CREATE TRIGGER SET_CUSTOMER_CUST_ID FOR CUSTOMER
BEFORE INSERT AS
BEGIN
IF (NEW.CUST_ID IS NULL) THEN NEW.CUST_ID = GEN_ID(CUSTOMER_CUST_ID_INC, 1);
END !!
SET TERM ; !!

Si tu as déjà des enregistrements, modifies "SET GENERATOR CUSTOMER_CUST_ID_INC TO 0" à la bonne valeur de départ.
Et lances l'exécution.
Si ça marche, pas de message et de retour dans IBConsole, tu devrai voir apparaître cette procédure dans les triggers.

Attention, penses à faire une copie de ta base de données avant de faire ces manipulations.
May Delphi be with you
0
cs_kurt Messages postés 21 Date d'inscription dimanche 22 décembre 2002 Statut Membre Dernière intervention 16 février 2003
26 janv. 2003 à 19:57
o kemrci, jvé tester tout ça
0
Rejoignez-nous