Insertion par rapport aux traitements SQL dans un Composant Applicatif
Vous pouvez insérer des traitements spécifiques dans les clauses SQL WHENEVER et DECLARE CURSOR. Ces clauses ont un niveau hiérarchique 10. Vous devez insérer des sous-fonctions dans la fonction spécifique de niveau 05 que vous avez associée au bloc FSQL. Dans les sous-fonctions créées, vous pouvez ensuite insérer des sous-fonctions de niveau hiérarchique inférieur. Il est recommandé de les insérer en mode relatif car l'insertion se fera à l'intérieur des sous-fonctions dépendantes de la fonction spécifique SQL.
- Ordres SQL
- Indiquez sur quel ordre porte le traitement spécifique :
- Ordre SQL WHENEVER :
Dans le code d'une Macro, ce traitement spécifique est identifié par REF=SQLW. Dans le code d’un Composant Applicatif, il est identifié par FSQL-WHENEVER.
- Ordre SQL DECLARE CURSOR : Si vous sélectionnez
cet ordre, vous devez indiquer le Segment de type Table ou la vue
SQL contenant le traitement spécifique qui doit être pris en compte.
Dans le code d'une Macro, ce traitement spécifique est identifié par REF=SQLD segm (où segm désigne le Segment ou la vue SQL sélectionnée). Dans le code d’un Composant Applicatif, il est identifié par FSQL-CURSR-segm (où segm désigne le Segment ou la vue SQL sélectionnée).
- Ordre SQL WHENEVER :
- Type d’action
- Les traitements spécifiques sont insérés
dans un Composant Applicatif en relatif par rapport aux traitements
générés en standard. Vous bénéficiez ainsi des traitements standard
générés tout en les adaptant à vos besoins.Vous devez donc choisir l’une des options suivantes pour insérer le traitement spécifique :
- Insérer avant un traitement ou une clause SQL standard. Le
traitement spécifique est inséré avant l'étiquette de début du traitement standard.
Dans le code d'une Macro, le positionnement de ce traitement spécifique est identifié par ACTION=*A. Dans le code d’un Composant Applicatif, il est identifié par @BEFORE.
- Insérer après un traitement ou une clause SQL standard. Le
traitement spécifique est inséré avant l'étiquette de fin si le niveau hiérarchique est supérieur au
niveau du traitement standard. Il est inséré après l'étiquette de fin si le niveau hiérarchique est
égal au niveau du traitement standard.
Dans le code d'une Macro, le positionnement de ce traitement spécifique est identifié par ACTION=*P. Dans le code d’un Composant Applicatif, il est identifié par @AFTER.
- Remplacer un traitement ou une clause SQL standard. Ce choix n'est
possible que si aucune sous-fonction spécifique n'a été insérée dans la clause SQL par rapport à ce
point d'attachement (clause WHENEVER ou clause DECLARE CURSOR sur
le même Segment). Si au moins une sous-fonction a été insérée par rapport à ce point d'attachement,
vous devez d'abord la supprimer.
Dans le code d'une Macro, le positionnement de ce traitement spécifique est identifié par ACTION=*R. Dans le code d’un Composant Applicatif, il est identifié par @REPLACE.
- Insérer avant un traitement ou une clause SQL standard. Le
traitement spécifique est inséré avant l'étiquette de début du traitement standard.