> Tech > A l’intérieur d’une procédure cataloguée SQL

A l’intérieur d’une procédure cataloguée SQL

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

Voici quelques techniques de programmation essentielles pour le coding de SPL, le nouveau langage SQL pour les procédures cataloguées Sur l'AS/400, une procédure cataloguée est un programme que l'on peut invoquer depuis un programme serveur ou client, au moyen d'une instruction SQL Call. Les procédures cataloguées ont pour principal avantage d'améliorer le niveau de performances et de sécurité des applications client/serveur. Une procédure cataloguée peut améliorer les performances en traitant les lignes (enregistrements) UDB/400 avant de transmettre les données au client. On peut aussi utiliser les droits adoptés par programme avec les procédures cataloguées pour mieux contrôler l'accès aux données UDB/400 et leur modification par les applications clients (pour en savoir plus sur les procédures cataloguées et leurs avantages, voir l'article “ Le client/serveur plus sûr et plus rapide avec les procédures stockées de DB2/400 ”, NEWSMAGAZINE, juin 1996).  Le principal mérite du langage SPL de SQL est sa portabilité
On peut écrire des procédures cataloguées en n'importe quel langage évolué (HLL : High-Level Language) AS/400 et, à  partir de la V4R2, avec des extensions ajoutées au langage SQL lui-même. Le principal mérite du langage de procédures cataloguées (SPL : Stored Procedure Language) SQL est sa portabilité : la même procédure cataloguée peut servir sur d'autres plates-formes UDB (AIX ou Windows NT par exemple) ainsi qu'avec Oracle et Microsoft SQL Server. Autre avantage non négligeable : un coding plus simple de certaines tâches, du fait que SPL est mieux adapté aux opérations base de données SQL.
Moyennant la prise en compte de quelques techniques, il est facile d'écrire des procédures cataloguées en SPL. Dans l'article “ Nouveau : des procédures cataloguées en SQL/400 ” (NEWSMAGAZINE, juin 1998), je décortique une procédure cataloguée complète et représentative écrite en SPL. Après cette “ visite ”, vous serez plus rapidement productif avec SPL.

A l’intérieur d’une procédure cataloguée SQL

La procédure cataloguée GetRank que j’ai écrite
indique la toute dernière information sur le classement des ventes d’un livre
donné au cours de la semaine. Comme on le voit en A sur la figure 1, la
procédure comporte un paramètre d’entrée, l’identification du livre. Les
paramètres de sortie renvoient la date du dernier samedi (c’est-à -dire la
fin de la semaine précédente), le classement des ventes du livre (1 indiquant
la première place), le classement des ventes du livre dans sa catégorie, le
nombre total d’unités vendues dans la semaine, et un statut de bonne fin de
procédure.

            Avant
d’entrer dans les détails de cette procédure cataloguée, examinons les
tables de base de données impliquées et comment, avec des instructions SQL
Select, obtenir les informations souhaitées. Les figures 2a à  2c présentent
les définitions et des exemples de contenu des tables Book, BookSaleWk et
Category (cette dernière table est référencée par une contrainte de clé étrangère
dans la table Book, mais n’est pas utilisée par la procédure GetRank.) Pour
chaque livre, la table BookSaleWk contient une ligne pour chaque semaine où le
livre a été en vente.

            Pour
trouver le classement d’un livre pour une semaine donnée, nous recherchons
d’abord le nombre d’exemplaires du livre vendus cette semaine, puis le
nombre de livres davantage vendus pendant la même semaine. Pour l’exemple de
la figure 2b, la requête de la figure 3 renvoie 23 comme nombre d’exemplaires
du livre 712773 vendus dans la semaine se terminant le 30 janvier 1999. Nous
pouvons utiliser cette valeur dans la requête de la figure 4 pour renvoyer 3,
c’est-à -dire le classement, ou le rang, du livre pour la semaine. Le rang
d’un livre est toujours représenté par un chiffre supérieur de un au
chiffre des livres ayant été vendus à  plus d’exemplaires. Dans le cas présent,
les livres dont il a été vendu le même nombre d’exemplaires occupent le même
rang ; par conséquent, le livre le plus vendu suivant doit sauter le
nombre de rangs approprié pour trouver son rang. Ainsi, pour la semaine se
terminant le 30 janvier 1999, les livres 712773 et 121290 sont à  égalité au 3e
rang, ce qui a pour effet d’omettre le 4e rang et d’attribuer le
5e rang au livre 346772.

            Pour
obtenir le classement dans une catégorie, on peut adopter la même méthode
limitée aux livres de même catégorie. La requête de la figure 5 renvoie 301,
la catégorie du livre. En utilisant cette valeur dans la requête de la figure
6, on obtient 3, c’est-à -dire le classement du livre dans sa catégorie.

Téléchargez cette ressource

Livre blanc Sécurité et Stockage des documents

Livre blanc Sécurité et Stockage des documents

Découvrez dans ce livre blanc Kyocera les outils logiciels qui permettent une approche holistique et efficace de la collecte, du stockage, de la gestion et de la sécurisation des documents en entreprise.

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