Une condition peut survenir de deux manières : • Le SqlState runtime crée la condition pour une instruction SQL (par exemple, une table n'est pas trouvée quand une instruction Update s'exécute). Votre routine crée intentionnellement la condition en exécutant une instruction Signal ou Resignal. Dans le prochain article, j'expliquerai plus
Instructions Signal et Resignal
en détail quand il faut utiliser
Signal et Resignal. Pour l’instant, je me
cantonne à quelques règles de base
concernant ces instructions.
Une instruction Signal ou Resignal
provoque une condition spécifique
c’est-à -dire, un SqlState particulier).
Signal ne doit être exécuté qu’à l’extérieur
d’un handler. (Il faut utiliser
Resignal à l’intérieur d’un handler
parce que cette façon de faire préserve
une « pile » d’informations de diagnostic
concernant les conditions.) L’effet
d’une instruction Signal est essentiellement
le même que si la condition spécifique
s’était manifestée sur tout autre
type d’instruction. Ainsi, l’instruction
Signal SqlState ‘42704’
met SqlState à « 42704 » (table non
trouvée), tout comme le ferait l’instruction
suivante si la table Customxr
n’existait pas :
Update Customxr
Set Name = ‘Ajax’
Where CustId = 123456;
Bien que l’instruction Signal vous
permette d’indiquer un littéral pour le
SqlState (comme on le voit dans
l’exemple précédent), je vous conseille
de toujours utiliser un nom de condition
et d’inclure la clause Set de l’instruction
Signal avec un mnémonique
que vous aurez déclaré pour un texte
de message associé, comme en figure
4. A noter que Message_Text est un
mot-clé SPL et que la chaîne que vous
attribuez à Message_Text est placée
dans le champ SQLERRMC de la structure
SQLCA (SQL Communications
Area), laquelle peut être extraite par un
appelant de routine. Cette chaîne peut contenir un maximum de 70 caractères.
Une instruction Resignal doit toujours
être utilisée uniquement dans un
handler. (Bien que l’actuelle release de
SQL/400 vous permette d’exécuter un
Resignal hors d’un handler, cela pourrait
changer dans les futures releases.)
Je vous conseille d’utiliser Resignal
pour créer uniquement des conditions
exception. (Utiliser Resignal pour
créer des avertissements (warnings)
internes à une routine est plus complexe
et moins fonctionnel que de se limiter
à utiliser des indicateurs ou à
créer des exceptions pour contrôler le
débit interne. De plus, une instruction
Resignal dans un handler ne peut pas
servir à définir un SqlState warning ou
not found pour un appelant de routine.
Il n’y a donc pas de bonne raison
d’utiliser Resignal pour créer une
condition warning.)
Une instruction Resignal dans un
handler peut soit indiquer une nouvelle
condition spécifique à créer :
Resignal SqlStateNoSalesCondition
Set Message_Text = SqlStateNoSalesText;
soit resignaler simplement la même
condition qui a causé l’invocation du
handler :
Resignal;
Les deux formes de Resignal sont
utiles dans diverses situations de traitement
d’erreurs.
Téléchargez cette ressource
Sécuriser Microsoft 365 avec une approche Zero-Trust
Découvrez comment renforcer la cyber-résilience de Microsoft 365 grâce à une approche Zero-Trust, une administration granulaire et une automatisation avancée. La technologie Virtual Tenant de CoreView permet de sécuriser et simplifier la gestion des environnements complexes, tout en complétant vos stratégies IAM, y compris dans les secteurs réglementés.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Cyberattaques assistées par IA : Pourquoi le modèle Mythos d’Anthropic représente une menace sérieuse pour la cybersécurité
- Avec les Smart Data, les entreprises mènent la danse de l’observabilité moderne
- Les dirigeants européens redéfinissent la C-suite à l’ère de l’IA
- Analyse Patch Tuesday Mai 2026
Articles les + lus
Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
Analyse Patch Tuesday Mai 2026
Les coûts cachés des merge requests générées par l’IA
Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
Moderniser le développement logiciel : de la fragmentation à l’intégration
À la une de la chaîne Tech
- Rhea1 : SiPearl allume le CPU européen le plus ambitieux pour le HPC et l’IA souveraine
- Analyse Patch Tuesday Mai 2026
- Les coûts cachés des merge requests générées par l’IA
- Femmes et métiers de la tech : une attractivité réelle freinée par des stéréotypes persistants
- Moderniser le développement logiciel : de la fragmentation à l’intégration
