When creating a program with embedded SQL.
The SQL pre-compiler copies the source and replaces all SQL Statements with
API Calls.
After having removed the SQL, the modified SQL source is compiled with
either CRTBNDRPG or CRTRPGMOD depending on the object type specified in the
CRTSQLRPGI command.
Mit freundlichen Grüßen / Best regards
Birgitta Hauser
Modernization ? Education ? Consulting on IBM i
"Shoot for the moon, even if you miss, you'll land among the stars." (Les
Brown)
"If you think education is expensive, try ignorance." (Derek Bok)
"What is worse than training your staff and losing them? Not training them
and keeping them!"
?Train people well enough so they can leave, treat them well enough so they
don't want to.? (Richard Branson)
-----Original Message-----
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Craig
Richards
Sent: Freitag, 5. August 2022 11:43
To: RPG programming on the IBM i (AS/400 and iSeries)
<rpg400-l@xxxxxxxxxxxxxxxxxx>
Subject: CRTSQLRPGI Activation Group default
Our current IBMi is running V7R3M0 and we are doing some testing on a new
machine running V7R4M0
We have an SQLRPGLE program being compiled with the following command:
CRTSQLRPGI OBJ(OBJLIB/PGM)
SRCFILE(SRCLIB/QRPGLESRC)
SRCMBR(MBR) DBGVIEW(*SOURCE) REPLACE(*YES) TEXT('Nothing to see here')
The program pulls in some standard header specs via /Copy which specify a
binding directory
The program compiles on the old V7R3M0 machine but not on the new V7R4M0
one.
On the old machine the compile listing shows Default Activation Group *NO On
the new machine the compile listing shows Default Activation Group *YES and
fails with:
Parameter BNDDIR not allowed with DFTACTGRP(*YES)
I understand this problem and how to fix it for that specific program.
But I don't understand why it is different on the two machines.
Prompting the CRTSQLRPGI command, the parameters are identical.
I've checked CHGCMDDFT for all objects on both machines and there is nothing
for CRTSQLRPGI.
(or CRTPGM)
On the old box someone has performed CHGCMDDFT on the QDEVTOOLS versions of
CRTRPGMOD and CRTBNDRPG, the latter specifying "DFTACTGRP(*NO)
ACTGRP(*CALLER)".
For consistency I have done the same thing (via program) on a duplicate of
those commands (from QDEVTOOLS) into a library above QSYS Interestingly on
the old box where the program compiles, it ends up with
DFTACTGRP(*NO) ACTGRP(*CALLER) which look suspiciously like the overridden
parameters on CRTBNDRPG. But:
a) I'm not aware that CRTSQLRPGI (for the default of OBJTYPE(*PGM)) looks to
CRTBNDRPG for its CRTPGM parameters
b) I've set the same defaults for CRTBNDRPG BUT in a duplicate command above
QSYS in the system library list.
On the new box, qualifying the Proxy Command QSYS/CRTBNDRPG would still have
the original command default from QDEVTOOLS of DFTACTGRP(*YES)
I've also tried compiling on the new machine with TGTRLS(V7R3M0) but that
still fails.
I wondered if anyone could shed any light on why one machine is defaulting
to DFTACTGRP(*YES) and the other DFTACTGRP(*NO) for CRTSQLRPGI when all
parameters are the same?
Thanks kindly
Craig
--
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,
visit:
https://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxxxxxxxx
Before posting, please take a moment to review the archives at
https://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxxxxxxxxxx for any subscription related
questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
https://amazon.midrange.com
As an Amazon Associate we earn from qualifying purchases.