Songez à toutes les fois que vous avez entendu des propos tels que : « Trouver tous les clients de Californie, Nevada, Arizona, ou New Mexico et changer leur numéro de territoire de ventes en 27 ». Que ce soit une requête ponctuelle ou une exigence permanente, l’écriture d’une solution
Mettez à jour sept (ou soixante dix) lignes à la fois
en RPG peut être encombrante et le code résultant pourrait bien être inefficace.
En revanche, SQL peut facilement mettre à jour (ou supprimer ou insérer) de multiples lignes avec une seule instruction. Si de telles requêtes reviennent fréquemment, plutôt que d’écrire et d’exécuter une instruction SQL ad hoc, vous pourriez intégrer une instruction dans un programme RPG et laisser à l’utilisateur le soin d’indiquer l’état et le nouveau territoire. Par le même procédé, vous pouvez supprimer toutes les lignes correspondant à certains critères : il suffit de remplacer l’instruction Update par Delete.
Par conséquent, chaque fois qu’il faudra mettre à jour ou supprimer de multiples lignes d’une table, songez à utiliser le SQL imbriqué. Comparons la technique de la figure 5 avec une mise à jour à l’aide d’un curseur, comme dans la figure 4. Le code de la figure 4 ne mettra à jour qu’une ligne à chaque exécution de l’instruction Update, tandis que l’instruction Delete de la figure 5 mettra à jour plusieurs lignes chaque fois qu’elle s’exécutera. Si vous voulez mettre à jour toutes les lignes répondant à un critère particulier, de la même manière (par exemple changer le territoire en 27), utilisez une instruction Update sans extraire d’abord un jeu de résultats (figure 5).
En revanche, si vous voulez sélectionner plusieurs lignes puis ne mettre à jour que certaines d’entre elles (en permettant par exemple à l’utilisateur de sélectionner dans une liste), vous extrairez le jeu de résultats puis utiliserez le curseur pour mettre à jour sélectivement des lignes dans la base de données sous-jacente (figure 4). Le choix d’utiliser le SQL imbriqué pour insérer des données est un peu différent que d’utiliser SQL pour les mises à jour et suppressions.
En effet, par défaut, un SQL Insert ajoute une seule ligne à la base de données, et l’insertion d’une ligne unique est une tâche dont RPG s’acquitte au moins aussi bien que SQL. Cependant il est possible d’écrire des instructions Insert qui ajoutent de multiples lignes à une table (ou à des tables) en copiant certaines données d’une autre table. S’il faut insérer de multiples lignes, il vaut mieux utiliser le SQL imbriqué que d’ajouter chaque ligne dans une boucle de votre code RPG.
Téléchargez cette ressource

Travail à distance – Guide complet pour les Directions IT et Métiers
Le travail à distance met à l'épreuve la maturité numérique des entreprises en termes de Cybersécurité, d'espace de travail, de bien-être des collaborateurs, de communication et gestion de projet à distance. Découvrez, dans ce nouveau Guide Kyocera, quels leviers activer prioritairement pour mettre en place des solutions de travail à domicile efficaces, pérennes et sécurisées.
Les articles les plus consultés
Les plus consultés sur iTPro.fr
- 7 conseils pour anticiper la cryptographie post-quantique
- Le DevSecOps, un passage obligé pour la sécurité des identités
- Soirée 10 ans du Club des Décideurs Informatique Côte-Basque
- Les décideurs informatiques français s’inquiètent de la conformité de leurs données
- L’IA ouvre la voie à une nouvelle ère de la robotique avec la sophistication de ses robots marcheurs
