Please note my response to Dieter, Birgitta.

I love the VIEW technique and believe it is widely applicable, but not universally.

If this is a single-use view of the data, then I see no need for the external SQL VIEW object.  Instead I create the DS matching my cursor using the externally described data structures.  This is especially useful in those cases where I need a prepared statement that doesn't lend itself to a VIEW.  For example, if I need to select the library at run time, or the ORDER BY criteria can be changed at run time.  (I know you can do ORDER BY magic with CASE statements, but I find that pretty cumbersome for all but the most trivial cases.)

In my experience, there is no one-size fits all solution, which is why I don't like rigid rules.  I believe in solid conventions with specific exceptions, and then best practices for the exceptions. In this particular case, I find the best practice for the exception is to create a data structure with externally described field definitions.

Thanks, Birgitta!


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.



This thread ...


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

This mailing list archive is Copyright 1997-2019 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].