> Tech > 7 étapes pour utiliser l’instruction SQL Describe

7 étapes pour utiliser l’instruction SQL Describe

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

par Mike Cravitz - Mis en ligne le 15/05/2002
Comment extraire et traiter les définitions de colonnes d'une instruction Select inconnues au moment de la compilation. Les curseurs de SQL permettent de produire des tables de résultats à  l'exécution en utilisant toute la puissance de l'instruction Select du langage SQL ...

SQL possède deux types de curseurs : statique et dynamique. On utilise l'un ou l'autre, de manière différente, selon qu'il est nécessaire, ou non, de différer la définition de certaines clauses de l'instruction Select jusqu'au moment de l'exécution. Dans un fichier Client, par exemple, on pourrait utiliser un curseur statique pour produire une table de résultats contenant tous les clients dont la dette dépasse un certain montant spécifié à  l'exécution, ou tous les clients en ordre de dette décroissant. C'est là  qu'intervient le curseur dynamique : il permet de retarder la logique de sélection et la séquence de données jusqu'au moment de l'exécution.

  S'il faut retarder la détermination des définitions de colonnes jusqu'à  l'exécution, on dispose de l'instruction SQL Describe. Dans cet article, je décris sept étapes permettant d'extraire et de traiter les lignes d'une instruction SQL Select lorsqu'on ne connaît pas les descriptions de colonnes au moment de la compilation. J'utilise pour cela un programme exemple appelé Describe, téléchargeable à  http://www.iseriesnetwork. com/code. Avant de commencer,définissons quelques termes nécessaires pour suivre cette discussion.

• Une table de base est une table qui contient des données réelles (c'est-à dire, un fichier physique sur l'iSeries).
• Une table de résultats est un ensemble de lignes que DB2 UDB (DB2 Universal Database for iSeries) sélectionne ou génère à  partir d'une ou plusieurs tables de base sous-jacentes.
• Un curseur SQL est une structure permettant d'accéder à  une table de résultats par des opérations Fetch ligne par ligne. En principe, on déclare un curseur avec une instruction Declare Cursor imbriquée dans un programme en langage évolué (HLL).
• Un curseur statique est un curseur SQL dont l'instruction Select est connue au moment de la compilation. Bien qu'il faille définir complètement la structure de l'instruction Select au moment de la compilation, on peut fournir des valeurs de comparaison par le biais de variables de programme (variables hôte) à  l'exécution. Pour plus d'informations sur les curseurs statiques, voir l'encadré Autres lectures.
• Un curseur dynamique est un curseur SQL dont la structure de l'instruction Select ne sera connue qu'à  l'exécution.

  Le programme décrit ici utilise des curseurs dynamiques accompagnant l'instruction SQL Describe. On peut utiliser des curseurs dynamiques pour différer la déclaration de toutes les clauses de l'instruction Select (From, Where, Group By, Having, Order By, par exemple) jusqu'à  l'exécution. On peut même utiliser des curseurs dynamiques pour différer la déclaration du format de la clause Select elle-même jusqu'à  l'exécution. Mais cette façon de faire pose quelques problèmes. Si l'on ne connaît pas les définitions de colonnes dans la table de résultats du curseur au moment de la compilation, on ne sait pas combien de variables d'hôte il faut définir pour contenir les valeurs de colonnes, ni le type, la précision (nombre de chiffres) ou l'échelle (nombre de décimales) à  utiliser. On peut résoudre ces problèmes à  l'aide de l'instruction SQL Describe.

Retrouvez toutes les figures explicatives dans le club abonnés ou l'édition papier de cet article : iSeries News Vol.1 - Num.3 - Mars 2002

7  étapes pour utiliser l’instruction SQL Describe

  L’exemple de programme Describe
illustre la manière d’utiliser les instructions
SQL Describe. La figure 1 présente
l’écran initial qui apparaît quand
on appelle le programme. On peut y
entrer n’importe quelle instruction
Select. Celle que j’ai entrée ici est extrêmement
simple, mais les vôtres
peuvent être bien plus complexes.

Appuyez sur Entrée pour afficher
une liste des colonnes dans la table de
résultats de l’instruction Select
(figure 2). Placez un « x » à  côté d’une
colonne et appuyez à  nouveau
sur Entrée. Si la colonne
est numérique, une fenêtre
demande de sélectionner et
de modifier le code pour le
champ (figure 3). On obtient
alors une liste de valeurs de
colonnes (figure 4). Notons
que ce programme traite les
table de résultats uniquement
avec des colonnes date,
heure, caractère, décimal
packé et décimal zoné ; mais
on peut ajouter d’autres
types de données. Notons
aussi que, pour les besoins de
cet article, le programme luimême
est purement illustratif
et rudimentaire.

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.fr - Publié le 24 juin 2010