Chapter 5 Construction de triggers et procédures
Certains SGBD requièrent que le curseur et les variables soient déclarés pour chaque élément avant que le nom de l'élément de modèle n'apparaisse dans le script. Cette déclaration peut prendre la forme d'une instruction qui appelle la procédure correspondante. Vous pouvez utiliser les syntaxes suivantes pour déclarer un élément de modèle de trigger :
Declnom d'élément de modèle de trigger.
Par exemple, la définition de trigger suivante contient l'instruction .DeclInsertChildParentExist
qui déclare l'élément de modèle de trigger .InsertChildParentExist
:
-- Before insert trigger "[%QUALIFIER%]%TRIGGER%" for table "[%QUALIFIER%]%TABLE%" create trigger [%QUALIFIER%]%TRIGGER% before insert on [%QUALIFIER%]%TABLE% for each row declare integrity_error exception; errno integer; errmsg char(200); dummy integer; found boolean; .DeclInsertChildParentExist begin .InsertChildParentExist -- Errors handling exception when integrity_error then raise_application_error(errno, errmsg); end; /
Dans un script de trigger généré, .DeclInsertChildExist
correspond à la définition suivante :
.FOREACH_PARENT() -- Declaration of InsertChildParentExist constraint for the parent "[%PQUALIFIER%]%PARENT%" .DEFINE "CURSOR" "cpk%REFNO%_%.25L:TABLE%" cursor %CURSOR%(.JOIN("var_%.L26:FK% %.L:COLTYPE%", "", ",", ") is") select 1 from [%PQUALIFIER%]%PARENT% where .JOIN("%PK% = var_%.L26:FK%", "and ") and .JOIN("var_%.L26:FK% is not null", "and ", "", ";") .ENDFOR
Copyright (C) 2005. Sybase Inc. All rights reserved. |
![]() |