> Tech > La procédure cataloguée GetTopBook

La procédure cataloguée GetTopBook

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

Analysons le reste de la procédure cataloguée GetTopBook présentée dans la figure 1 pour comprendre comment ces étapes sont mises en oeuvre en SPL (Stored Procedure Language) SQL. La mise en oeuvre consiste en une instruction Create Procedure possédant deux sections. La première section (A) spécifie le nom qualifié de

La procédure cataloguée GetTopBook

la procédure (AppDta.GetTopBook), ses
paramètres, et plusieurs autres attributs. (Pour plus de renseignements au
sujet des éléments de l’instruction Create Procedure, consultez l’article
"A l’intérieur d’une procédure cataloguée SQL"). La clause Result
Set définit le nombre maximal d’ensembles de résultats qu’une procédure
cataloguée peut renvoyer.

           
La deuxième section de l’instruction
Create Procedure définit le corps de la procédure et commence par une
instruction Begin (en B) et qui définit un bloc d’instructions SQL explicatives
et exécutables. Dans ce bloc, déclarez en premier des variables de travail mnémotechniques
(C), puis codez les déclarations concernant tous les curseurs que la procédure
utilise (D et E), suivies par les déclarations du handler (F). Il vaut mieux
toujours déclarer une variable SQLState. Celle-ci sera automatiquement renseignée
après exécution de chaque instruction SQL. (J’expliquerai les deux déclarations
du curseur dans un moment).

           
Après les déclarations, codez
d’autres déclarations SQL permettant d’accéder et de manipuler les données.
Dans "A l’intérieur d’une procédure cataloguée SQL", nous avions
couvert des techniques de gestion des exceptions importantes, aussi n’y
reviendrons-nous pas ici. Assurez-vous simplement de conserver toutes les
instructions SQL de manipulation des données, comme je l’ai fait dans la figure
1.

           
Le code exécutable de la procédure
GetTopBook démarre en initialisant le paramètre SQLStateOut (en G). Cette étape
garantit que l’appelant recevra une forme de message d’avertissement si une
erreur force la procédure à  se terminer de façon inattendue. Au fur et à 
mesure que le reste de la procédure est exécuté, SQLStateOut se voit affecter
soit la valeur SQLState correspondante si une des déclarations SQL subséquentes
échoue, soit 00000 si l’exécution de la procédure s’est achevée normalement.

           
La déclaration suivante, en H,
calcule la date du samedi précédent. Grâce aux fonctions intégrées de SQL
et aux autres fonctions de manipulation de dates, ce calcul est instantané. Dès
que l’instruction calcule la date désirée, les autres paramètres de la procédure
cataloguée sont placés à  leurs valeurs initiales (en I).

           
Pour obtenir la catégorie d’un livre
donné, utilisez l’instruction Select simple de la section J. Si le numéro
d’identification du livre n’existe pas dans la table Book, la procédure se
termine sans renvoyer d’ensemble de résultats et renvoie un code (02000)
indiquant qu’aucun enregistrement n’a été trouvé. Au cas où il se produirait
un autre type d’erreur, la procédure se terminerait également de manière
similaire. Remarquez comment j’utilise l’instruction Set Result Sets None (en K)
pour sortir de la procédure sans ensemble de résultats après avoir détecté
une erreur. Le programme appelant devrait anticiper cette éventualité.

 

Téléchargez gratuitement cette ressource

Protection des Données : 10 Best Practices

Protection des Données : 10 Best Practices

Le TOP 10 des meilleures pratiques, processus et solutions de sécurité pour mettre en œuvre une protection efficace des données et limiter au maximum les répercutions d’une violation de données.

Tech - Par iTPro - Publié le 24 juin 2010