I have a similar block in my modules also...but that doesn't help if
sometimes you need commit = *NONE and sometimes you need commit = *CHG.

Try having two of those blocks with an IF statement

if flag = *ON;
exec SQL SET OPTION ... ;
exec SQL SET OPTION ... ;

Your code will not compile...

Now try this...
if *on = *off;
exec SQL SET OPTION ... ;

Guess what? The options set will be effective as the SET OPTION is a
compile time statement, not a run-time one.

In my no-main, or linear-main modules, I usually stick SET OPTION in its
own procedure with a nice little comment header
// SetSqlOptions
// The SQL SET OPTION statement is a compile time statement
// It must be physically the first SQL statement the compiler sees
// during compilation. the options are in effect for the entire module
// Thus this dummy procedure that isn't ever called.

Note such a proc must physically before any other SQL in the module. But
no-where in the module is that procedure actually called.


On Thu, Sep 22, 2022 at 9:22 AM <dfreinkel@xxxxxxxxxxxxxxxxx> wrote:

This is what I have in all my SQL RPG programs.

// ----------------------------------------------------------
exec sql set option closqlcsr = *endmod,
commit = *none,
datfmt = *ISO,
datsep = '-' ,
timfmt = *ISO,
naming = *SYS,
alwcpydta = *yes;
// -----------------------------------------------------------

Darryl Freinkel
Telephone: 770.321.8562 Mobile: 678.355.8562

This is the RPG programming on IBM i (RPG400-L) mailing list
To post a message email: RPG400-L@xxxxxxxxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives

Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related

Help support by shopping at with our affiliate

As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2022 by 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 on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.