Re: Upgrade v4 to v5-4gl difference
Posted in 1995
}Date: Mon, 1 May 1995 16:23:56 -0600 (MDT) }From: Con Woodall <cwoodall@vth4.vth.colostate.edu> }X-Informix-List-Id: <list.6148> } }On Mon, 1 May 1995, Clem Akins wrote: }> > From: Marcel Veldhuizen <100567.1405@CompuServe.COM> }> > }> > Is there anyone who can help me with upgrade from version 4 to 5 }> > or higher, what are the differences regarding 4GL? }> > [...cool .sig deleted...] }> }> The biggest one that got us was argument checking. In version <=4 }> you could pass as many arguments as you wanted, and it would let you, }> regardless of how many the other program expected. In version >= 5 } }I also noticed a little more rigor where c code routines are called from }4gl. I had a code function that concluded with a retquote(variable_name) }which functioned as I needed it to when called from the 4.1 4gl tools, }but not with the 6.1. I had to add a return statement. after the retquote. } }You might find documentation that tells you the return is necessary, but }I had somehow operated without it on 4.1 in an unusual situation where the }c code is carrying out some serial communication.. The relevant documentation is in the I4GL Reference Manual, Volume 1, Chapter 2 in the 4.0 manual set, and in I4GL Reference Manual, Volume 2, Appendix C in the 6.0 manual set. You should also consult the 4.1 Supplement S-192 ff if you have version 4.1x. It always has been necessary to have functions which return an integer value. The integer value should be the number of values returned on the 4GL stack (which is quite separate from the C stack). The only difference is that the c-code system gets more stringent about the number of return values -- the 4.13/6.01 releases by default check that the correct number of values are returned, the same as the p-code system always has done. There is a gruesomely names environment variable which turns that behaviour off; read the release notes (which is a good idea in any case). Yours, Jonathan Leffler (johnl@informix.com) #include <disclaimer.h>