Appel d'une procédure associée depuis un modèle de trigger

Certaines bases de données cible n'acceptent pas de voir figurer un code dans une instruction de trigger. Dans ces bases de données, un modèle de trigger peut appeler une procédure associée sous la forme d'un paramètre, qui est défini dans un modèle de procédure. Dans ces cas, les modèles de procédure sont répertoriés dans la liste des modèles de trigger.

Exemple

Informix n'accepte pas les codes dans les modèles de trigger. Le modèle de trigger InsertTrigger appelle la procédure sous la forme de la variable %PROC%, comme suit :

-- Insert trigger "[%QUALIFIER%]%TRIGGER%" for table "[%QUALIFIER%]%TABLE%"
create trigger [%QUALIFIER%]%TRIGGER% insert on [%QUALIFIER%]%TABLE%
referencing new as new_ins
   for each row (execute procedure %PROC%(.FKCOLN("new_ins.%COLUMN%", "", ",", "));")
/

Le modèle de trigger InsertProc définit la procédure, comme suit :

--  Insert procedure "%PROC%" for table "[%QUALIFIER%]%TABLE%"
create procedure %PROC%(.FKCOLN("new_%.14L:COLUMN% %COLTYPE%", "", ",", ")")
    .DeclInsertChildParentExist
    .DeclInsertTooManyChildren
    define  errno       integer;
    define  errmsg      char(255);
    define  numrows     integer;

    .InsertChildParentExist
    .InsertTooManyChildren

end procedure;
/