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
Sécuriser votre système d’impression
Longtemps sous-estimée, la sécurisation d’un système d’impression d’entreprise doit être pleinement prise en compte afin de limiter le risque de fuite d’informations sensibles. Voici les 3 principales précautions à prendre.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- Azul permet aux entreprises de simplifier leurs environnements Java
- AI Speech double toutes vos vidéos !
- Finance : l’IA générative plébiscitée pour les décisions stratégiques
- Cybersécurité : les comportements à risque des collaborateurs
- Prédictions 2025 : voici comment l’intelligence artificielle va redéfinir la sécurité de 3 façons