Bonjour,

J'ai une table avec une vingtaine de champs, dont la cle unique est composee de deux de ces champ : DATE et NUM
J'ai un trigger (before input) qui rempli ces deux champs avec DATE=CURRENT DATE et NUM=GEN_ID(num,1)

Mon souci est de remettre le generateur a zero quand la date a changee.
Mais impossible d'utiliser SET GENERATOR dans un trigger ou dans une procedure stockee.
Et malheureusement, pour un souci de performance et d'integrite de la base, j'ai un imperatif : il faut que ce soit le serveur qui gere ceci !

Voici le code avec lequel j'esperais faire ca mais qui ne convient pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
begin
   date_entete = CURRENT_DATE;
   heure_entete = CURRENT_TIME;
 
   /* GESTION DE L'INCREMENTATION DE NUM_ENTETE AVEC LE GENERATOR GEN_NUM_ENTETE */
   /* LE NUMERO D'ENTETE (LE GENERATOR) REPART A 1 CHAQUE NOUVELLE JOURNEE */
   select max(num_entete)
   from entete_dossier_encours
   where entete_dossier_encours.date_entete = date_entete
   into i;
   if (i is null) then
      SET GENERATOR(GEN_NUM_ENTETE,0);
   num_entete = GEN_ID(GEN_NUM_ENTETE, 1);
end!!
Merci d'avance pour l'aide.