Cobol dynamic SQL : DSNH312I DSNHPARS undifined or unusable host variable "NAME"
Bonjour
J'essaie de mettre en place un DELETE DYNAMIC dans un programme cobol mais je n'y arrive pas :(
Voici ce que j'ai mis dans le WORKING :
Code:
1 2 3 4 5 6 7 8
|
01 W-CLE PIC X(2).
01 W-NUM PIC X(13).
01 W-DYNA-SQL.
05 WS-SQL-LEN PIC S9(4) USAGE COMP.
05 WS-SQL-TXT PIC X(150).
01 W-STR-LENGTH PIC 9(3) VALUE ZERO. |
Et voici mon code dans la procédure division :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
MOVE '00' TO W-CLE
MOVE '0123456789123' TO W-NUM
MOVE SPACES TO WS-SQL-TXT
STRING
"DELETE FROM MA_TABLE WHERE"
" MA_TABLE_MA_CLE='" W-CLE
"' AND MA_TABLE_MON_NUM=" W-NUM
DELIMITED BY SIZE INTO WS-SQL-TXT
DISPLAY 'DYNAMIC-SQL :' WS-SQL-TXT '*'
INSPECT FUNCTION REVERSE(WS-SQL-TXT) TALLYING W-STR-LENGTH
FOR LEADING SPACES
COMPUTE WS-SQL-LEN = LENGTH OF WS-SQL-TXT - W-STR-LENGTH
DISPLAY 'THE STRING LENGTH IS:' WS-SQL-LEN
DISPLAY 'WS-SQL-TXT: ' WS-SQL-TXT(1:WS-SQL-LEN) '*'
EXEC SQL
PREPARE STMT1 FROM :W-DYNA-SQL
END-EXEC
EXEC SQL
EXECUTE STMT1
END-EXEC |
A la compilation j'ai l'erreur suivante qui remonte :
Citation:
DSNH312I DSNHPARS UNDEFINED OR UNUSABLE HOST VARIABLE "W-DYNA-SQL"
La seule chose que j'ai trouvé c'est ici : Lien IBM
Mais je ne comprends pas trop comment faire autrement.
Est-ce que quelqu'un pourrait m'aider ?
Merci d'avance,