Fil d’Ariane du forum – Vous êtes ici :ForumForums techniques: AS/400Bizarrerie (ou pas) dans CLLE
Vous devez vous identifier pour créer des messages et des sujets.

Bizarrerie (ou pas) dans CLLE

Bonjour,

j'ai merdé ce matin un certain temps sur un bug dans un de mes CLLE avant de trouver. J'avais écrit

rtvsysval sysval(qdayofweek) rtnvar(&qdayofweek)
if cond(qdayofweek *eq '*SAT') then(do)
  /* faire ce qu'il y à faire */
enddo

au lieu de

rtvsysval sysval(qdayofweek) rtnvar(&qdayofweek)
if cond(&qdayofweek *eq '*SAT') then(do)
  /* faire ce qu'il y à faire */
enddo

Et les 2 versions compilent sans la moindre erreur !

Quelqu'un peut-il m'expliquer ce que fait cette première version sans le & ?

Bonjour,

en cl un mot qui peut être ne contient que des caractères acceptables pour un nom d'objet et ceux qui commencent par étoile sont remplacés par une chaine de caractères en majuscule

donc :

if cond(qdayofweek *eq '*SAT') then(do)
équivaut à
if cond('QDAYOFWEEK' *eq '*SAT') then(do)

et

if cond(&qdayofweek *eq *sat) then(do)
équivaut à
if cond(&qdayofweek *eq '*SAT') then(do)

Merci Vazymimil ! J'avais complètement oublié ce comportement que pourtant je connaissais depuis très longtemps.