|
----- Original Message ----- From: "Jim Langston" <jlangston@conexfreight.com> To: <RPG400-L@midrange.com> Sent: Monday, August 28, 2000 12:32 Subject: Re: explicit close > In a library I had built in a different language on a different platform the program never had to > do a call to open the file, they would just call the procedures themselves. The procedures would > "look" to see if the file was open, if it wasn't it would open the file. And then do it's thing and > return. We can do this in ILE as well. > At the end of every program there would be a call to cleanup the open files. The cleanup would > go through the open files and close them all. I remember I had built a public array to contain the > names of the open files. There was another procedure that was actually called when any file was > opened that would add the name of the file to the bottom of the array and open the file. The close > procedure the would simply do a for...next loop and close each of the open files until it got to a > blank entry, at which point it knew there were no more files open. (Or perhaps I had it go though > the entire array, I don't quite remember). This is one of the great things about ILE - activation groups. Closing the AG takes care of that for us. Because writing code actually tends to bore me, I try to spend more of my time designing an app to make good use of AG's. This frees me from having to write as much of that mind-numbing "plumbing" stuff. > Something that would take 200+ lines of code to do from scratch in a program would take maybe > 5 lines. I remember one in question. Something like: > > #include STDCALLS.INC > #include PUBLIC.INC > > ChgCust(NULL, UserSecurityLevel) > > Cleanup() Same thing in my ILE service programs: CallP(e) ChgCust(p1, p2) If %Error ..... Endif CallP(e) CleanUp > The best thing about the whole scheme is once I decided to change anything I would do it in the library > and be done with it, never have to change my programs at all. Even though 30 programs may call up > the Change Customer screen, I only had to change it once and everything was automatically changed. ILE.... yup. > In this language you did not have to recompile each program when you recompiled the library (directory > in AS/400 terms). That made it a bit easier. I only had to recompile my programs when I changed my > public variables or standard call headers. ILE... same thing. There are still a couple of things that I really miss though. One of the biggest is qualified file/field/procedure names. I'd really love to be able to do something like: CallP SrvPgmA.Cleanup() CallP SrvPgmB.Cleanup() Instead of the current: CallP x1Cleanup CallP x2Cleanup or: Eval varCustNo = FileA.AccountNo Eval varSuplNo = FileB.AccountNo instead of having to resort to the PREFIX keyword. Regards, John Taylor Canada +--- | This is the RPG/400 Mailing List! | To submit a new message, send your mail to RPG400-L@midrange.com. | To subscribe to this list send email to RPG400-L-SUB@midrange.com. | To unsubscribe from this list send email to RPG400-L-UNSUB@midrange.com. | Questions should be directed to the list owner/operator: david@midrange.com +---
As an Amazon Associate we earn from qualifying purchases.
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.