OPNQRYF partie 2
1 ) Utiliser une sélection compliquée

Il existe toutes les fonctions SQL mais pas forcément avec la même syntaxe.

OPNQRYF FILE(client) QRYSLT('ADDRES *CT "VALENCE" ')

Sélection des clients qui ont VALENCE dans la date. L'inconvénient de
cette solution, c'est que l'on ne trouvera pas les Valence ou valence.

Solution :

OPNQRYF FILE(client) QRYSLT('%XLATE(ADDRES QSYSTRNTBL) *CT +
"VALENCE" ')

Dans cette exemple avant de comparer, on convertit la zone en majuscule à l'aide de la table système QSYSTRNTBL.


Vous avez beaucoup d'autres possibilités voir OS/400 DB2 For AS400 data
base programming VxRx


2 ) Mise au point

La mise au point est souvent délicate (programme en batch difficile à
débuguer)

Il faut augmenter votre niveau de log ==> CHGJOB LOG(4 00 *SECLVL)
LOGCLPGM(*YES)
ce qui vous permettra d'avoir un niveau plus fin de messages.

Il existe 2 grands cas d'erreur :

A) La sélection formatée est fausse

Il faut détailler la variable QRYSLT(&select). Souvent c'est une erreur
de mise au point.

B) Le résultat ne correspond pas à ce qu'on attend.

A la sortie de l'opnqryf, il faut utiliser la commande CPYFRMQRYF qui
permet de placer le résultat d'une requête opnqryf dans un fichier et
ainsi de le voir par DSPPFM.


Dans la prochaine astuce, nous aborderons les traitements récapitulatifs.

PLB