This happens not often, but this time I agree with Dieter.
Create a view based on the complete select statement (with the exact field selection you need and including all Common Table Expressions, Joins, Group Bys, Nested-Sub-Selects etc. - without the Order By).
The view cannot only be used for accessing the data, but it can be included as external data structure.
In your program you define the view as external data structure.
In the Declare Statement you specify a simple SELECT * FROM VIEW (may be with several additional WHERE conditions and an ORDER BY clause).
In your FETCH statement you fetch the data directly into the external data structure.
No need to create an additional file with all the fields or a data area or what ever.
BTW a view is never keyed, it is nothing else than a stored select statement. In this way you theoretically can have thousands of views on the same table without any performance impact.
... and a view can be used where ever you use a table or physical file, e.g. embedded SQL, ODBC, JDBC, Download to Excel, WebQuery and even Query400 etc.
Mit freundlichen Grüßen / Best regards
Birgitta Hauser
"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 [mailto:rpg400-l-bounces@xxxxxxxxxxxx] On Behalf Of Joe Pluta
Sent: Donnerstag, 31. August 2017 03:08
To: rpg400-l@xxxxxxxxxxxx
Subject: Re: SQL and defining data structures
My one unbreakable rule is that there are no unbreakable rules.
I've been doing quite a bit of research recently in the area of mitigating change impact in 24/7 shops. It's been a revelation. When using an externally described data area as a reference file (as in my
example) there is no more linkage to the file definition than if you compiled over a view. So yes, you're referencing the file, but no, you're not in danger of a level check.
... create view is your friend. You must not reference any file in
your programms anyway, never ever.
D*B
--
This is the RPG programming on the IBM i (AS/400 and iSeries) (RPG400-L) mailing list To post a message email: RPG400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options,
visit:
http://lists.midrange.com/mailman/listinfo/rpg400-l
or email: RPG400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives at
http://archive.midrange.com/rpg400-l.
Please contact support@xxxxxxxxxxxx for any subscription related questions.
Help support midrange.com by shopping at amazon.com with our affiliate link:
http://amzn.to/2dEadiD
As an Amazon Associate we earn from qualifying purchases.