• Subject: Re: If %Open() vs CLOSE(E)
  • From: bmorris@xxxxxxxxxx
  • Date: Tue, 16 Jan 2001 13:59:44 -0500
  • Importance: Normal


>Date: Mon, 15 Jan 2001 20:59:46 -0500
>From: "M. Lazarus" <mlazarus@ttec.com>
>
>  Which is more efficient: "If %Open()" or CLOSE(E) ?
>
>  I suspect the latter. Here's the scenario.  A file will be opened and
>closed potentially about 1,000 times, pointing to different members.
>DO    1000
>
>CLOSE( E )
>DLTOVR
>OVRDBF FILE() MBR()
>OPEN
>
>ENDDO
> ...
>  The only time the CLOSE will receive an error will be during the first
>CLOSE.  So the question is:  Would one error invocation (under the covers)

>be more efficient than 1,000 If %Open() tests?

Mark, it's not an error in RPG to close a file that's already closed.
Your program will check to see if it's open, and only attempt the close
if it is.  Performance-wise, it's about the same.

But if there were an error associated with this, it would take a lot of
"if %open"s to equal the time taken to raise and handle the exception.
(I don't know how many "a lot" is.)

Why are you doing it in this order?  How is the last CLOSE going to be
done?  Why not do it this way:
 DO    1000
 OVRDBF FILE() MBR()
 OPEN

 CLOSE( E )
 DLTOVR
 ENDDO

Barbara Morris


+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

This thread ...

Follow-Ups:

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].