lgoodbar wrote:
If I say "ADDRESS EXECSQL" at the top of a Rexx program, then I can run
SQL statements fine. Prefixing i5/OS commands with ADDRESS COMMAND works
well also.
However, if I use just ADDRESS COMMAND at the beginning of a program,
then ADDRESS EXECSQL statements return with RC(-10).
Interesting. I've not noticed this before, probably because I
couldn't think of any reason ever to put ADDRESS COMMAND as the
first ADDRESS statement. That sets the 'permanent' environment to
the environment that it's already set to. Except...
Then I thought in terms of multiple procs where COMMAND might not be
the current 'permanent' environment upon entry to some lower-level
procedure.
Hmmm...
In looking over the docs (REXX reference), I see:
"
With no arguments, commands are routed back to the environment that was
selected before the previous lasting change of environment was made, and
the current environment name is saved. After changing the environment,
repeated execution of ADDRESS alone, therefore, switches the command
destination between two environments alternately. A null string for the
environment name ("") is the same as the default environment COMMAND.
The two environment names are automatically saved across internal
and external subroutine and function calls. See the CALL
instruction (topic 3.3) for more details.
The address setting is the currently selected environment name. You
can retrieve the current address setting by using the
ADDRESS built-in function (see topic 4.3.3).
"
One thing that isn't clear to me is what happens when repeated
ADDRESS statements refer to the _same_ environment that is already
saved as the 'permanent' environment. I.e., what is the result of
saying ADDRESS COMMAND when COMMAND is already the environment? And
then what happens when a later ADDRESS EXECSQL is thrown in? And
what happens when the environment is reverted back to the previous?
I'm thinking that you might want to make use of the third paragraph.
Only specify ADDRESS COMMAND (or ADDRESS EXECSQL) when the ADDRESS
bif indicates that a change would make sense.
Maybe?
Tom Liotta
As an Amazon Associate we earn from qualifying purchases.