> Tech > Quand faut-il utiliser SQL plutôt que RPG ou CL ?

Quand faut-il utiliser SQL plutôt que RPG ou CL ?

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

par Jef Sutherland
Pendant très longtemps, RPG et CL ont été les seuls (ou les meilleurs) outils dont disposait un programmeur AS/400 pour traiter toutes les tâches de développement. Nous disposons aujourd'hui, de nombreux outils et langages, parmi lesquels il est possible de choisir, et notamment, Visual Age for RPG, Net.Data et SQL. Dans le présent article, j'explique comment utiliser SQL pour résoudre quelques-uns des problèmes courants résolus auparavant à  l'aide d'un programme RPG ou CL. Je pense qu'il est facile de comprendre comment l'ajout de SQL à  la boîte à  outils de développement peut faire gagner du temps.

On peut résoudre le problème avec une simple instruction SQL

Imaginons qu’un opérateur ait chargé par erreur une série de transactions budgétaires
d’un fichier PC deux fois. Etant donné qu’il y a plus de 2.000 transactions en
double, il est évident que le DFU (Data File Utility) n’est pas la bonne solution
pour aller les supprimer. En utilisant la commande DSPPFM (Display Physical Member),
on parcourt le fichier et on détermine où débutent les enregistrements en double.
Ensuite, il suffit de penser à  la manière de concevoir le programme RPG adéquat
pour supprimer ces transactions.

Mais, en fait, il n’est pas nécessaire d’écrire un programme RPG pour supprimer
des enregistrements contenus dans un fichier. On peut résoudre le problème avec
une simple instruction SQL utilisant la fonction RRN (Relative Record Number).
Pour utiliser cette fonction, il faut connaître le numéro du premier enregistrement
dans le fichier dans lequel on souhaite entamer le processus de suppression (remarque
: cette solution suppose que le fichier ne réutilise pas les enregistrements supprimés.
Si c’est le cas, les enregistrements téléchargés seront éparpillés dans le fichier
et non placés en ordre séquentiel à  la fin du fichier).

Supposons par exemple que le premier enregistrement en double commence au numéro
8347 dans le fichier du budget PBudget. Après avoir utilisé la commande STRSQL
(Start Interactive SQL) sur la ligne de commande, on peut saisir la commande suivante
:

Delete From PBudget
Where RRN(PBudget) >= 8347

La clause Delete From PBudget indique l’action (Delete) et le fichier (PBudget).
La clause Where spécifie les critères selon lesquels les fichiers seront supprimés.
La fonction RRN peut prendre un nom de fichier en tant que paramètre ou elle peut
être une clause de paramètre vide (c’est-à -dire RRN()) si un seul fichier est
spécifié dans l’instruction SQL. (on aurait pu utiliser RRN() ici car l’instruction
ne comporte qu’un fichier).
Cela suffit amplement ! Le problème est résolu, aucune programmation n’a été nécessaire.
Mais voici quelques réserves : premièrement, la fonction RRN est idéale pour les
travaux de maintenance mais, étant donné qu’elle lit les enregistrements séquentiellement,
elle est lente et peut ne pas convenir aux travaux de production. Ensuite, l’instruction
SQL utilisant les numéros d’enregistrements, il faut s’assurer de ne supprimer
que les enregistrements souhaités.

Téléchargez cette ressource

Les mégatendances cybersécurité et cyber protection 2024

Les mégatendances cybersécurité et cyber protection 2024

L'évolution du paysage des menaces et les conséquences sur votre infrastructure, vos outils de contrôles de sécurité IT existants. EPP, XDR, EDR, IA, découvrez la synthèse des conseils et recommandations à appliquer dans votre organisation.

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