> Tech > Tirer parti des erreurs SQL définies par l’utilisateur

Tirer parti des erreurs SQL définies par l’utilisateur

Tech - Par iTPro.fr - Publié le 24 juin 2010
email

par Jarek Miszczyk - Mis en ligne le 26/11/2003

En V5R1, DB2 UDB permet de traiter les erreurs définies par l'utilisateur dans différents types de procédures stockées

Les erreurs définies par l'utilisateur sont certaines conditions qu'un développeur peut définir en tant qu'erreurs dans la logique de gestion d'une application. Comme, par exemple, une règle de gestion stipulant que la rémunération d'un employé ne peut pas dépasser celle de son supérieur...

Les erreurs définies par l'utilisateur sont certaines conditions qu'un développeur peut définir en tant qu'erreurs dans la logique de gestion d'une application. Comme, par exemple, une règle de gestion stipulant que la rémunération d'un employé ne peut pas dépasser celle de son supérieur. La routine de la base de données, comme une procédure stockée, qui sert à  modifier la rémunération, doit s'assurer que la nouvelle valeur respecte cette règle. Si tel n'est pas le cas, la routine signale une erreur au processus appelant pour l'informer de cette transgression.
En V5R1, DB2 Universal Database for iSeries (DB2 UDB) permet de traiter des erreurs définies par l'utilisateur survenant dans des procédures stockées et d'autres routines de bases de données, afin que les états et messages SQL définis par l'utilisateur soient renvoyés à  l'application client.
En adoptant une approche homogène vis-à -vis des erreurs définies par l'utilisateur, à  utiliser sur les divers types de procédures stockées, on peut isoler complètement l'application client des détails d'implémentation de la procédure stockée. On peut, par exemple, réécrire une procédure stockée RPG existante en SQL ou Java, sans implications envers le code client. Cette technique est aussi beaucoup plus fiable que d'utiliser les paramètres de sortie pour le signalement des erreurs, parce que DB2 UDB risque de ne pas signaler les valeurs des paramètres de sortie quand une erreur (définie par l'utilisateur ou système) est rencontrée pendant l'exécution d'une procédure.
J'explique ici les techniques de coding qui permettent d'appliquer les erreurs définies par l'utilisateur dans différents types de procédures stockées.

Généralement, DB2 UDB gère deux
types de procédures stockées : SQL et
externes.

  • Procédures stockées SQL. Elles sont
    écrites entièrement en SQL.
    L’implémentation DB2 UDB du langage
    de procédures stockées SQL est
    fondée sur la spécification standard
    ANSI/ISO SQL/PSM (Persistent Stored
    Module). DB2 UDB rend aussi
    SQL/PSM disponible pour le développement
    des UDF (user-defined functions)
    et les triggers SQL.

  • Procédures stockées externes. On les écrit dans l’un des langage de programmation
    acceptés par l’iSeries
    (C/C++, Cobol, Java, RPG, par
    exemple). Pour créer une procédure
    stockée externe, il faut compiler le
    code source pour le langage hôte afin
    de créer un objet programme (ou classe). On utilise ensuite l’instruction
    SQL Create Procedure pour enregistrer
    la procédure stockée et pour
    pointer vers l’objet programme qui
    contient son implémentation.
    A partir de la V4R5, on peut également
    écrire une procédure stockée externe
    en Java. Les procédures stockées
    Java ont plusieurs fonctions propres au
    langage que l’on peut utiliser pour un
    traitement d’erreur utilisateur efficace
    (nous reviendrons sur les procédures
    stockées Java).
    Chaque type de procédure stockée
    offre certaines structures de programmation
    aptes à  traiter des erreurs définies
    par l’utilisateur. Tous les snippets
    de code expliqués ici utilisent un
    schéma de base de données exemple
    (livré avec OS/400 V5R1 ou ultérieur)
    que l’on peut créer avec l’instruction
    SQL suivante :

    CALL QSYS.CREATE_SQL_SAMPLE(‘DB2USER’)

  • Téléchargez gratuitement cette ressource

    HP Elite Slice G2 : optimisez la collaboration… et votre budget !

    HP Elite Slice G2 : optimisez la collaboration… et votre budget !

    Téléchargez cette étude Forrester et découvrez comment booster la collaboration tout en dégageant un excellent R.O.I grâce au système de vidéoconférence HP Elite Slice G2 avec Microsoft Teams !

    Tech - Par iTPro.fr - Publié le 24 juin 2010