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
Quand faut-il utiliser SQL plutôt que RPG ou CL ?
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
Mac en entreprise : le levier d’un poste de travail moderne
Ce livre blanc répond aux 9 questions clés des entreprises sur l’intégration du Mac : sécurité, compatibilité, gestion, productivité, coûts, attractivité talents, RSE et IA, et l’accompagnement sur mesure proposé par inmac wstore.
Les articles les plus consultés
- Cybersécurité Active Directory et les attaques de nouvelle génération
- Partager vos images, vidéos, musique et imprimante avec le Groupe résidentiel
- N° 2 : Il faut supporter des langues multiples dans SharePoint Portal Server
- Les 6 étapes vers un diagnostic réussi
- Activer la mise en veille prolongée dans Windows 10
Les plus consultés sur iTPro.fr
- Avec l’IA agentique, la robustesse des SI redevient stratégique
- Les erreurs du secteur bancaire dans son approche IA
- Crypto Crime 2026 : États et cybercriminels convergent vers une industrialisation des infrastructures
- IA & pilotage de portefeuille de projets : accélérer la décision sans en perdre le contrôle
Articles les + lus
Couchbase lance AI Data Plane pour industrialiser l’IA agentique
Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
Computex 2026 : 5 signaux forts à retenir
La chaîne d’approvisionnement, point de rupture récurent du SI
Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
À la une de la chaîne Tech
- Couchbase lance AI Data Plane pour industrialiser l’IA agentique
- Windows 11 : Microsoft généralise le point-in-time restore pour accélérer la remise en service des PC
- Computex 2026 : 5 signaux forts à retenir
- La chaîne d’approvisionnement, point de rupture récurent du SI
- Microsoft Build 2026 : contre-offensive des modèles maison face à OpenAI et Anthropic
