Bonjour,

je butte sur un léger problème pour gérer une exception lors d'un cast

l'ojbectif obtenir un numéro unique
si l'ASSORTIMENT (code couleur) est numérique alors le nombre (EANNUMBER) sera égal à l'ASSORTIMENT , sinon , on fait une recherche du premier numéro valide . J'ai essayé plusieurs alternatives a ce code , sans succès

FB2.1

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
SET TERM ^ ;
ALTER TRIGGER ASSORTS_BI ACTIVE
BEFORE INSERT OR UPDATE POSITION 0
AS
DECLARE VARIABLE tmp SMALLINT;
BEGIN
  IF ((NEW.EANNUMBER IS NULL) OR (NEW.EANNUMBER=0)) THEN
   BEGIN
      NEW.EANNUMBER=CAST(NEW.ASSORTIMENT AS SMALLINT);
      WHEN ANY DO 
      BEGIN
         tmp=1;
         WHILE (EXISTS (SELECT ASSORTIMENT FROM ASSORTS WHERE NOM=NEW.NOM AND ASSORTIMENT=:TMP))
          DO TMP=:TMP+1;
         NEW.EANNUMBER=:TMP;
      END
   END      
 END^
SET TERM ; ^