Thanks Lloyd. That works for the given example.
But something's still not quite right.
If I try MYREXCMD CMD('update truc set ma=''hello''')
REX will SAY update truc set ma=''l''
And obviously the SQL will not run. I can't see how to eliminate the extra quote marks.
The same command runs fine in my command with a CL as CPP.
-----Message d'origine-----
De : midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] De la part de lgoodbar@xxxxxxxxxxxxxx
Envoyé : jeudi 9 octobre 2008 16:02
À : midrange-l@xxxxxxxxxxxx
Objet : RE: REXX QIBM_REX_FIND_SRCMBR
David,
Character values from a command are surrounded by quote (') marks. The SQL doesn't understand 'delete from inexistanttable' because the quote marks are there; they cause the syntax error you see.
One way to fix the problem is to exclude the quote marks when retrieving the argument. For the command string DOREX CMD('delete from inexistanttable')
PARSE ARG 'CMD('iSql')'
iSql='delete from inexistanttable'
PARSE ARG 'CMD('''iSql''')'
iSql=delete from inexistanttable
Hope this helps,
Loyd
Loyd Goodbar
Business Systems
BorgWarner Shared Services
662-473-5713
-----Original Message-----
From: midrange-l-bounces@xxxxxxxxxxxx [mailto:midrange-l-bounces@xxxxxxxxxxxx] On Behalf Of David FOXWELL
Sent: Thursday, October 09, 2008 8:25 AM
To: Midrange Systems Technical Discussion
Subject: RE: REXX QIBM_REX_FIND_SRCMBR
This is the one that doesn't, adapted so I can use *REXX as the CPP PARSE ARG 'CMD('iSql')'
RC=0
SAY iSql
ADDRESS EXECSQL,
EXECSQL 'SET OPTION COMMIT = *NONE'
ADDRESS EXECSQL,
EXECSQL iSql
If run MYREXCMD CMD('delete from inexistanttable'), I get :
'delete from inexistanttable'
6 *-* Address EXECSQL EXECSQL iSql;
+++ RC(-10)
It then does a SNDPGMMSG of the error giving :
ID message . . . . . . : SQL0104
Message . . . . : Elément syntaxique 'delete from inexistanttable' n'est pas
correct. Eléments possibles : ( END GET SET CALL DROP FREE HOLD.
--
This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing list To post a message email: MIDRANGE-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/midrange-l
or email: MIDRANGE-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at
http://archive.midrange.com/midrange-l.
As an Amazon Associate we earn from qualifying purchases.