|
It all depends on how the data structure changes. If you are removing fields, it would be a simple matter of initializing them to *Blanks in your procedure, and the calling program would never know. Of course, if the logic of the calling program is looking at this field, then you are going to have to change the program anyway. If you are adding new fields there are a few ways to go about it, mostly dependent on the programming language you are using. The easiest way is to just not pass back these new fields for the old call. Create a new call that passes back the full records and have any program that needs these fields call the new procedure. That way you have to modify only the programs that need it. For updates and writes, it would depend on if I need the new fields populated or can keep them as initial values. If I can keep them as initial values, again I would just create a new procedure. If I couldn't, I would rename the procedure and make any changes. In any case where programs have to be modified for changes, it is much more simpler to search for GetCustRecord in all my programs and know exactly which ones need to be modified, then to search for CUSTFILE and go through each program determining what it is they actually do. Maintenance for system wide changes just became a whole lot simpler. One thing I had done was if there were going to be 2 versions of a procedure dependent on if it could work without the full information, I would add an additional parameter to the procedure and then in the programs that were new and actually used the new features I would pass it this parameter. Something like: Function GetCustRecord(CustNumber, LockIt, Version) If Version = NULL do it the old way Else do it the new way EndIf And there were cases with many modifications where I would do a If Version = NULL do it the old way Else If Version = '2' do it the newest way Else do it the old new way EndIf Every once in a while when I had time to spare I would go through all the programs searching for GetCustRecord and update them all with the newest version, then go into the library and take out the old versions. Regards, Jim Langston Date: Tue, 10 Apr 2001 12:50:44 EDT From: Gwecnal@aol.com Subject: RE: Externalize DB/IO If you externalize all db/io and provide a bunch of funcitions like GetCustMastRecord UpdateCustMastRecord etc and each of them passes a key and a data structure to hold the data, don't you still have to hunt down and recompile all the programs when the data structure changes? How have you helped yourself? I'm not fussing, I really want to know. +--- | 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 +---
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.