Problème

La compilation RPG échoue pour un programme faisant des accès natifs sur des fichiers ayant des VARLEN si le programme comporte des instructions SQL

Solution

Un programme utilisant des instructions SQL ne peut pas faire des accès fichier natifs sur des fichiers ayant des zones de type VARLEN (= VARCHAR = Alphanumérique variable).
Ceci concerne les programmes iSeries et les parties serveur AS/400 des programmes Visual Adélia, Adélia Web, et Adélia Cloud.
Dans ces cas la compilation RPG du programme échouera.

La raison de cette restrictions vient des limitations des commandes de compilation de l'AS/400 :
Pour compiler un programme utilisant des accès fichiers natifs des fichiers contenant des zones de type VARLEN, il faut préciser la valeur *VARCHAR pour le paramètre CVTOPT de la commande CRTRPGMOD.
Si un programme contient des instructions SQL, on doit le compiler avec la commande CRTSQLRPGI qui lancera le précompilateur SQL et qui après appellera la commande CRTRPGMOD pour compiler le source modifié par le précompilateur SQL.
Mais, la commande CRTSQLRPGI ne permet pas de préciser qu'on veut qu'elle lance le CRTRPGMOD avec la valeur *VARCHAR pour le paramètre CVTOPT et donc elle lance le CRTRPGMOD sans préciser *VARCHAR dans CVTOPT et donc la compilation RPG échoue.

Articles connexes