Avec SQL imbriqué, il faut respecter deux règles fondamentales pour réussir les diagnostics :
Ne jamais, jamais, utiliser la directive WHENEVER SQL.
Toujours vérifier la variable SqlState après chaque instruction SQL exécutable.
Aux yeux des nouveaux programmeurs SQL, la directive
SQL imbriqué
WHENEVER peut paraître comme une fonction SQL commode, mais c’est une source potentielle d’ennuis. L’effet de WHENEVER peut être modifié par le simple déplacement du texte de sous-routine autour de votre code source, même si vous ne changez pas le flux d’exécution du programme.
Pour être sûrs que votre programme traite les erreurs runtime SQL, le moyen le plus simple et le plus fiable est d’adopter une approche standard pour tester la variable SqlState (le nom est raccourci en SqlStt dans RPG/400 et en V5R2 et versions antérieures de ILE RPG). Le SQL runtime définit cette variable de cinq caractères après chaque instruction SQL (figure 5). Le SQL runtime définit aussi la variable SqlCode (ou SqlCod), mais SqlCode est une variable de réaction plus ancienne, non standard – et vous devriez plutôt utiliser SqlState.
Un état SQL de 00000 signifie que l’instruction a été exécutée correctement. Les deux premiers caractères indiquent l’état d’accomplissement général, de la façon suivante :
00 – réussite
01 – avertissement
02 – pas de données
03 à ZZ – erreur
Vous pouvez créer de diverses manières votre traitement d’erreurs SQL standard.
Outre SqlState, le SQL runtime définit d’autres variables dans la SQLCA (SQL Communication Area), qui est décrite dans l’annexe C du V5R3 DB2 Universal Database for iSeries SQL Reference (publib.boulder.icm.com/infocenter/iseries/v5r3/topic/db2/rbafzmst.pdf). Par exemple, SqlErrD(1) contient les quatre derniers caractères du message d’échappement CPF associé si une exception se produit. Vous pouvez utiliser l’un des débogueurs interactifs pour afficher et définir les points de contrôle sur le SqlCode et d’autres variables de feedback.
On le voit, SQL fournit des informations de diagnostic de plusieurs manières. Il n’est pas plus difficile de travailler avec cette information que d’utiliser les diagnostics émanant des interfaces base de données traditionnelles. Une bonne connaissance des principes de base des diagnostics SQL vous permet d’aborder l’utilisation de SQL en sachant que vous pourrez détecter et corriger les problèmes rapidement.
Téléchargez cette ressource
Plan de sécurité Microsoft 365
Les attaquants savent comment prendre le contrôle de votre tenant Microsoft 365, et vous, savez-vous comment le reprendre en main ?
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Secteur public : l’IA accélère la modernisation des infrastructures
- De l’inventaire à l’action : l’Asset Management au service d’un Numérique plus responsable
- IA et bureaucratie : la complexité qui grève les projets
- IA dans les services financiers : priorité stratégique, mais passage à l’échelle sous tension
Articles les + lus
Model Context Protocol : le contexte, grand oublié du débat
Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
Computex 2026 : 5 signaux forts à retenir
À la une de la chaîne Tech
- Model Context Protocol : le contexte, grand oublié du débat
- Microsoft dévoile MAI-Thinking-1 : un modèle de raisonnement « enterprise-grade » en preview publique
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
- Computex 2026 : 5 signaux forts à retenir
