|
Another suggestion is to use the whole darn subprocedure on the dow. For
example
dow MainGuts();
enddo;
and the subprocedure MainGuts would return an indicator variable of true
or false to exit the loop. I use this for traditional read loops, and for
sql cursor fetches.
dow FetchCursor();
// your logic here
enddo;
Two benefits:
1 - Prior to V5R4, you could keep most of your sql free format this way.
No longer an issue with V5R4.
2 - Only 1 read or fetch. No primer needed.
3 - If one does an iter in mid loop, you don't have an infinite loop
because, then, you are not bypassing the actual read. For example
fetch...; // priming read/fetch
dow 1=1;
if z=b;
iter; // infinite loop
endif;
fetch...
enddo;
vs
dow FetchCursor();
if z=b;
iter; // no longer an infinite loop
endif;
enddo;
4 - last benefit is that you can have extensive error handling in your
read/fetch subprocedure and not clutter up mainline. Like who wants to
see clutter in the mainline about a read failing NOT because you hit end
of file, but because a read trigger says you're not authorized?
Rob Berendt
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2025 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.