|
Why not have the SQL statmements in a source file, read through that
file to build the statement and then do a EXEC IMMEDIATE?
Op 9-5-2020 om 21:52 schreef Brian Parkins:
You say, "The goal is to move common code out of the application
source and into copy books for ease of development and maintenance."
May I humbly suggest that your (laudable) goal precludes the use of
copybooks in this way. In fact, you may end up with something more
difficult to maintain.
Have you considered wrapping your common code in procedures and
packaging these in a service program?
Brian.
On 09/05/2020 07:17, Reeve wrote:
I'm trying to stack multiple INCLUDE's to generate static SQL. The
goal is
to move common code out of the application source and into copy books
for
ease of development and maintenance. I have a need to include a JOIN in
some cases, and while I could simply have two versions of a single
consolidated copy book (one with the join and one without), that
solution
doesn't appeal to me.
This is the first copy book:
EXEC SQL
SELECT cmcust INTO :cmcust FROM arp001
and this is the second:
WHERE cmstat = 'A'
and this is the third:
AND CMCLS = 'R'
...and there will be additional selections.
Here's what the code might look like:
/include qcpysrc,testcopy1
JOIN arp002 ON cmcust = nmcust
/include qcpysrc,testcopy2
/include qcpysrc,testcopy3
and cmcls = 'R' and nmtype = '2';
The source out of the preprocessor includes an /END-FREE and the
compiler
tags the "-" in column 11 as an error even when the source member
includes
a /FREE in it. The first SQL line isn't terminated so the
preprocessor is
likely not looking for an /END-FREE.
Position 11 Token - was not valid. Valid tokens: FOR USE
When I've added a /FREE statement to these source members, the error
still
appears. I've tried COPY as well; still getting errors in the
preprocessor
output. Using RPGPPOPT(*LVL2) and V7R3M0.
I'll be grateful for any ideas!
Stay safe and stay healthy.
-reeve
--
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.
This mailing list archive is Copyright 1997-2024 by midrange.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 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.