MIDRANGE dot COM Mailing List Archive



Home » MIDRANGE-L » April 2010

Re: REXX AND ADDRESS EXECSQL



fixed

The result of "say sqlcode ':' sqlstate" on a v5r3 system is "-901 : 58004" which indicates that the SQL processor failed due to an internal\system error. Thus there would appear to be a defect [at least at that release & unknown PTF level]; a defect which may have been corrected in a later release, but no obvious APAR\PTF documenting the error nor its correction. For anyone at a later release with the necessary PTF level, there is a special "SQL0901 logger" tool which can have its results queried for more detail.
http://archive.midrange.com/rpg400-l/201002/msg00342.html

Regards, Chuck

David FOXWELL wrote:

Would anyone like to paste this script into a QREXSRC member and
run option 16 to confirm this?
ADDRESS EXECSQL, EXECSQL 'SET OPTION COMMIT = *NONE' ADDRESS EXECSQL, EXECSQL 'CREATE ALIAS QTEMP/A1 FOR QTEMP/T1' IF RC <> 0 THEN DO MSGID = "SQL"RIGHT(STRIP(ABS(SQLCODE)),4,'0') 'SNDPGMMSG MSGID(&MSGID) MSGF(QSQLMSG) MSGDTA(&SQLERRMC)',
'MSGTYPE(*ESCAPE)'
END

CRPence wrote:

I expect there is a defect which would need to be reported to
your service provider. In my experience, the REXX is not thoroughly tested in the lab, nor as well supported as for with
embedded SQL. For example in REXX the SQL RENAME does not work
[perhaps only with FOR SYSTEM NAME, I do not recall] and SQL
CALL for INOUT parameters does not effect any updated parameter
values, and the lab had no intention to correct these when I reported them years ago [although I made a private version of the code in the lab which made the INOUT parametes function as
I expected].

Jack Kingsley wrote:
<<SNIP per message from OP not on NG; using msg indirectly>>

On Thu, Apr 1, 2010 at 6:17 AM, David FOXWELL wrote:

I've been using this little script for a while now without
any problems in order to use SQL from the command line or
in CL programs.

PARSE ARG iSql
RC=0

ADDRESS EXECSQL,
EXECSQL 'SET OPTION COMMIT = *NONE'
ADDRESS EXECSQL,
EXECSQL iSql

However, if I pass a CREATE ALIAS command, I get this in the joblog :
STRREXPRC EXECSQL PARM('create alias myalias for myfile')
* Address EXECSQL EXECSQL iSql;
+ RC(-10)
SNDPGMMSG MSGID(SQL0901) MSGF(QSQLMSG)

Create table/index works fine.

Any ideas what might be different with create alias?






Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2014 by MIDRANGE dot COM and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available here. If you have questions about this, please contact