Bonjour,
Quelqu'un saurait-il comment programmer le like du query en RGP3 (colonnage)
Merci
Bonjour,
Quelqu'un saurait-il comment programmer le like du query en RGP3 (colonnage)
Merci
Je ne suis pas sûr de bien comprendre la question. Tu veux parler du LIKE DEFN ?
Ici, ça veut dire que je crée une nouvelle zone que j'appelel WW$REC dont la définition est identique à celle de W$REC, zone déjà définie qqpart ailleurs et pas forcément dans le programme.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2C *LIKE DEFN W$REC WW$REC C Z-ADDW$REC WW$REC
Non, je parle de ça :
Choix des enregistrements
Entrez les comparaisons, appuyez sur ENTREE. Entrez OR pour un nouveau groupe.
Tests : EQ, NE, LE, GE, LT, GT, RANGE, LIST, LIKE, IS, ISNOT...
AND/OR Zone Test Valeur (Zone, Nombre, 'Caractères', ou ...)
LBTAB LIKE '%xxx%'
Merci Mercure
Je suis peut-être lent à la détente mais je n'ai toujours pas compris ce que tu cherches à faire dans ton programme RPG III.
"programmer like du query en RGP3 (colonnage)", qu'est-ce que ça veut dire ?
Tu veux parler du LIKE de SQL ?
Lorsque j'utilise QUERY j'ai la possibilité de rechercher à l'interieur de zones alpha une chain de caractères par exemple :
la zone libellé article peut être art1="vis" art2="demi vis" art3="quart de vis"
Si je recherche "vis" en programmation j'aurais que le 1er article dont le libellé commence par "vis" si je fais un query avec la fonction LIKE et que je mette LIKE '%vis%' j'aurais les 3 articles car ils contiennent la recherche "vis"
J'espère avoir été assez claire
Merci








Oui, c'est plus clair.
Au moins deux soluces:
1/ Tu peux intégrer du langage SQL dans ton RPG III et utiliser directement LIKE dans l'instruction DECLARE CURSOR :
Tu peux facilement rendre cette instruction dynamique, c'est à dire que tu peux changer la valeur recherchée ("VIS" ici) sans avoir à la coder en dur dans le programme. Ensuite, il faut ouvrir le curseur, intégrer un FETCH dans une boucle DO pour récupérer les data puis fermer le curseur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 C/EXEC SQL C+ Declare CSR cursor For C+ Select * From MaTable C+ Where UPPER(LIBART) LIKE '%VIS%' C/END-EXEC
2/ ou bien faire un READE sur ta clé dans une boucleDO et scanner la zone LIBART en recherchant la valeur voulue à chaque lecture.
Partager