× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



To me this seems like it will end up being a confusing mess. If this is common code I would put into a procedure in a service program and have all the programs use the service program. It seems much cleaner solution and if you ever have to change this common code it is easy to do with a service program without having to recompile every program that uses the /include.

Scott Mildenberger | Software Developer | Washington Companies IT Services | 101 International Drive | Missoula, MT | Office: 406-523-1536 | www.washingtoncompanies.com

-----Original Message-----
From: RPG400-L <rpg400-l-bounces@xxxxxxxxxxxxxxxxxx> On Behalf Of Reeve
Sent: Saturday, May 9, 2020 12:17 AM
To: rpg400-l@xxxxxxxxxxxxxxxxxx
Subject: Multiple INCLUDE statements in SQLRPGLE

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

This email has been scanned by Washington Corporations using Message Labs Spam Filtering Technology. If this e-mail is SPAM that you no longer want to receive, please refer to the Spam or Junk Email Handling Process (https://washcorp.service-now.com/kb_view.do?sysparm_article=KB0011399). If you are experiencing any other e-mail problems, please call the IT Service Center at 855-WC-IT-NOW or x1212 from any office phone.

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

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

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.