> Tech > Obtenir des ensembles de résultats d’une procédure cataloguée SQL

Obtenir des ensembles de résultats d’une procédure cataloguée SQL

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

Rajoutez de la puissance à  vos applications client/serveur avec cette procédure cataloguée SQL qui renvoie de multiples lignes de donnéesEn écrivant des procédures cataloguées avec le langage des procédures cataloguées (Stored Procedure Language ou SPL en anglais) SQL on pourra d'une part jouir d'une plus grande portabilité sur des plates-formes hétérogènes, et d'autre part simplifier le coding des bases de données. Par ailleurs, l'utilisation des procédures cataloguées peut également améliorer les performances et la sécurité des applications client/serveur. Le SPL peut être utilisé dans différents cas de figure, y compris pour récupérer un ensemble de résultats. Cet ensemble est constitué d'un ou plusieurs enregistrements de données, comme par exemple une liste des meilleurs ventes de livres classée par catégorie. Dans l'article "A l'intérieur d'une procédure cataloguée SQL", NEWSMAGAZINE, septembre 1999, nous avons fait un tour d'horizon des procédures cataloguées SQL. Nous avons également expliqué comment créer une procédure cataloguée utilisant des paramètres de sortie pour renvoyer des informations au programme appelant. Aujourd'hui, nous allons embarquer pour un autre voyage, au coeur d'une procédure cataloguée SPL. Mais cette fois, la procédure renvoie un ensemble de résultats. (Pour une présentation des concepts de base du SPL, consultez l'article "Des procédures cataloguées en SQL/400", NEWSMAGAZINE, juin 1998.

Nous allons embarquer pour un autre voyage, au coeur d'une procédure cataloguée SPL

La procédure cataloguée GetTopBook que j’ai écrite,
renvoie des informations sur les livres les plus vendus dans une catégorie
particulière au cours de la semaine précédente. Comme l’indique la section A
de la figure 1, la procédure admet deux paramètres en entrée : un numéro
d’identification de livre (BookIdIn) et la position dans le palmarès des ventes
d’une catégorie de livres donnée (CategoryRankIn). Le numéro d’identification
du livre permet d’identifier la catégorie de livres à  classer. La position
dans le palmarès des ventes d’une catégorie de livres détermine le nombre de
best-sellers que la procédure cataloguée renverra. Par exemple, si le
programme appelant fournit une position dans le palmarès des ventes égale à 
1, alors la procédure cataloguée renverra des informations uniquement sur les
livres qui se sont les mieux vendus. De même, si le programme appelant indique
5, alors la procédure cataloguée renverra des informations sur les cinq
meilleures ventes de livres. Etant donné que plusieurs livres peuvent obtenir
exactement le même score en nombre d’exemplaires vendus, et de ce fait posséder
des classements identiques, la procédure cataloguée peut renvoyer plus de
livres que le nombre défini par le programme appelant comme seuil dans le
palmarès des ventes. Evidemment, la procédure peut également renvoyer moins
de livres.

           
Les paramètres en sortie de la procédure
renvoient la catégorie du livre spécifié (CategoryIdOut, qui représente la
catégorie servant à  classer les best-sellers), la date du Samedi précédent (WeekEndingDateOut,
qui indique la fin de la semaine précédente), le nombre des livres renvoyés
dans l’ensemble de résultats (RowsOut), et un statut d’achèvement de la procédure
(SQLStateOut). Les figures 2a à  2c présentent respectivement les tables des
bases de données Book, BookSaleWk, et Category. Comme l’illustre la figure 2b,
chaque livre affiché dans la table BookSaleWk possède un enregistrement pour
toutes les semaines pendant lesquelles il a été disponible en librairie.

           
Pour identifier les meilleures ventes
dans une catégorie, la procédure cataloguée GetTopBook effectue les opérations
suivantes :

  1. Elle retrouve la date correspondant au samedi
    précédent.

  2. Elle retrouve la catégorie correspondant au
    livre indiqué dans le paramètre BookIdIn.

  3. Elle boucle à  travers les résultats des
    ventes de la semaine et de la catégorie spécifiés dans un ordre décroissant,
    en commençant par le nombre le plus élevé d’exemplaires vendus, jusqu’à 
    atteindre le rang des ventes défini, ou alors jusqu’à  ce que la dernière
    ligne de résultats des ventes ait été lue. GetTopBook sauvegarde le
    nombre d’exemplaires vendus correspondant au dernier enregistrement lu.

  4. Elle renvoie la liste des livres faisant
    partie de la catégorie sélectionnée et dont les chiffres de ventes (pour
    la semaine précédente) sont supérieurs ou égaux à  la valeur sauvegardée
    à  l’étape 3.

Téléchargez gratuitement cette ressource

Comment sécuriser la Digital Workplace ?

Comment sécuriser la Digital Workplace ?

Avec le recours généralisé au télétravail, les entreprises ont ouvert davantage leur SI. En dépit des précautions prises, elles ont mécaniquement élargi leur surface d’exposition aux risques. Découvrez 5 axes à ne pas négliger dans ce Top 5 Sécurité du Télétravail.

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