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
![Guide des Solutions Cloud & Services Managés Simplifiés](https://www.itpro.fr/wp-content/uploads/2024/05/TOP-5-des-Services-Manages-Simplifies-2024-IT-Experts.jpg)
Guide des Solutions Cloud & Services Managés Simplifiés
Comment capitaliser sur son existant tout en bénéficiant, dès à présent, des promesses de flexibilité et de scalabilité du cloud ? Découvrez les bonnes pratiques pour répondre aux défis de simplification du Cloud dans ce nouveau TOP 5.