Bonjour,
Je dois récupérer une valeur via un écran (DSPF) pour la passer en paramètre dans le WHERE de mon instruction SQL. J'utilise FETCH pour récupérer tous les enregistrements qui satisfont la condition et je les insère dans une revue (SUBFILE).
Lorsque j'exécute mon programme, la revue est toujours vide et je remarque que le code SQCLCOD est toujours égal à -420.
J'ai consulté le manuel des codes & messages SQL, qui me précise que le code -420 = "THE VALUE OF A CHARACTER STRING ARGUMENT WAS NOT ACCEPTABLE TO THE function-name FUNCTION".
Je n'ai pas trouvé où se situe l'erreur car je suis novice en SQL![]()
J'espère que quelqu'un pourra m'aider et je l'en remercie d'avance![]()
Voici le code que j'ai écrit :
(Parmi les zones après le SELECT, certaines sont alphanumériques et certaines sont numériques, je ne sais si ça peut poser problème).
C EVAL SqlString =
C 'SELECT GTCUSR, GTCSS, GTCDAT, GTCCDE, ' +
C 'GTCSCD, GTCTIM, GTCSGE, GTCLTU, GTCLTC, ' +
C 'GTCLTU ' +
C 'FROM TSTDTA/GTC ' +
C 'WHERE GTCUSR = ? ' +
C 'ORDER BY GTCSS DESC, GTCDAT DESC, ' +
C 'GTCCDE'
C*
C/Exec Sql
C+ PREPARE SqlStmt FROM :SqlString
C/End-exec
C*
C/Exec Sql
C+ DECLARE CURSORGTC CURSOR FOR SqlStmt
C/End-exec
C*
C/Exec Sql
C+ OPEN CURSORGTC USING :S1USR
C/End-exec
C/Exec Sql
C/Exec Sql
C+ FETCH NEXT FROM CURSORGTC
C+ INTO :GTCUSR, :GTCSS, :GTCDAT,
C+ :GTCCDE, :GTCSCD, :GTCTIM, :GTCSGE,
C+ :GTCLTU, :GTCLTC, :GTCLTD
C/End-Exec
C/Exec Sql
C+ FETCH NEXT FROM CURSORGTC
C+ INTO :GTCUSR, :GTCSS, :GTCDAT,
C+ :GTCCDE, :GTCSCD, :GTCTIM, :GTCSGE,
C+ :GTCLTU, :GTCLTC, :GTCLTD
C/End-Exec
Partager