× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: MIDRANGE-L Digest V4 #353
  • From: Jim Langston <jimlangston@xxxxxxxxxxxxxxxx>
  • Date: Tue, 10 Apr 2001 13:06:31 -0700
  • Organization: Pacer International

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


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

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.