Une conversion dans un Trigger
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:
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 ; ^ |