> Tech > Exécution de l’instruction Create Procedure

Exécution de l’instruction Create Procedure

Tech - Par Renaud ROSSET - Publié le 24 juin 2010
email

La meilleure manière d'exécuter l'instruction Create Procedure (figure 1) consiste à  la sauvegarder dans un membre de fichier source et à  utiliser une commande RunSQLStm (Run SQL Statements) semblable à  celle de la figure 8. Bien entendu, on utilise ses propres noms de fichier et de bibliothèque source pour le

Exécution de l’instruction Create Procedure

paramètre SrcFile.

            Pour
illustrer le code SPL portable, j’ai utilisé la convention de nomination SQL
pour cet exemple, de sorte que la commande dans la figure 8 inclut les paramètres
Naming(*SQL), DftRdbCol(AppDta), UsrPrf(*User) et DynUsrPrf(*User). Avec le système
de noms SQL, les noms de tables non qualifiés sont implicitement qualifiés par
la collection (bibliothèque) indiquée dans le paramètre DtfRdbCol. Il faut
utiliser n’importe quelle bibliothèque contenant les tables et autres objets
utilisés dans la procédure cataloguée. Si l’on n’inclut pas le paramètre
DftRdbCol, les noms de tables non qualifiés sont implicitement qualifiés par
l’ID d’autorisation, qui est liée au profil utilisateur et, généralement,
ce n’est pas une bonne idée. De plus, avec la convention de nomination SQL,
le fonctionnement par défaut laisse la procédure cataloguée s’exécuter
sous l’autorité adoptée par le propriétaire de la procédure (c’est-à -dire
un objet programme). J’ai indiqué UsrPrf(*User) et DynUsrPrf(*User) pour que
la procédure s’exécute sous le profil utilisateur, un procédé classique
pour de nombreux programmes d’application AS/400. Dans les cas où l’on
souhaite qu’un programme adopte des droits, il faut utiliser UsrPrf(*Owner) et
DynUsrPrf(*Owner).

            On
peut utiliser le paramètre Commit pour indiquer un niveau d’isolation
(c’est-à -dire contrôle d’activation) si l’on ne veut pas la valeur par défaut
*CHG. Pour l’analyse des erreurs et le débogage, il faut inclure le paramètre
DbgView.

            Pour
utiliser SPL, il faut installer à  la fois le DB2 Query Manager et SQL
Development Kit for AS/400, ainsi que les produits du compilateur ILE C/400. Une
instruction Create Procedure incluant du code SPL commence par générer le code
source d’un programme C avec du SQL imbriqué, puis précompile et compile ce
source en un objet programme OS/400. Il faut garder cela présent à  l’esprit
avant de déboguer une procédure cataloguée SPL ; on peut bien sûr
utiliser le débogueur de sources de l’AS/400, mais on constatera que la
logique du code C générée est plutôt difficile à  suivre. C’est pourquoi
il faut utiliser les techniques illustrées dans cet exemple pour tester la
valeur de SQLState après Select, Update, Insert, Delete, ou d’autres
instructions complexes et réduire le besoin d’utilisation du débogueur. Pour
ceux qui veulent davantage de protection, j’explique dans l’encadré “ Protection
des instructions SPL ” comment étendre ces techniques pour couvrir
toutes les instructions présentes dans une procédure SQL.

Téléchargez cette ressource

Préparer l’entreprise aux technologies interconnectées

Préparer l’entreprise aux technologies interconnectées

Avec la « quatrième révolution industrielle », les environnements hyperconnectés entraînent de nouveaux risques en matière de sécurité. Découvrez, dans ce guide Kaspersky, comment faire face à cette nouvelle ère de vulnérabilité.

Tech - Par Renaud ROSSET - Publié le 24 juin 2010