Re: 4GL 6. and 4 ? Difference?
Posted in 1995
>From: storm@aztec.co.za (Storm Software) >Date: 17 Aug 1995 18:58:32 +0200 >X-Informix-List-Id: <news.16319> > >Can anyone state with certainty that the Version 4. Rapid 4gi files >will run on a V.7. engine., or NOT! You will have to use a version 4.1x interpreter (fglgo, fgldb) to run 4.1x p-code programs. If the engine is a 7.0x system, you will have to use a relay module -- set SQLEXEC to point to the 7.0x lib/sqlrm. It won't be as fast as a direct connection, but that can only be achieved by using a 6.0x interpreter, and requires the software to be recompiled; there are major differences internally between the 4.1x and the 6.0x p-codes. >Also, what is the actual difference between V.4. 4GL and V.6? I am curious >to know whether the 4GL compiler actually knows its going to talk to 7 and >does anything different. Yes, the compiler actually does handle things slightly differently. Because the underlying ESQL/C product changed between 4 and 5, and again between 5 and 6, there are a number of things that have to be worried about. One of them is the cursor name mangling process used to make cursor names 'private' to the source file in which they appear -- read the release notes. Another difference is in the set of libraries in use; the 6.0x ESQL/C product uses several extra libraries compared with previous releases. The 7.2x ESQL/C product will provide even more different libraries, but that's another matter. However, the upside of using the 6.0x I4GL is that you have the 6.0x and later connectivitiy and you do not go through the relay module. This improves performance. Linguistically, therer should be no difference between the 4.1x and 6.0x products; we have struggled mightily to keep the language the same. The only visible difference I'm aware of is imposed by the underlying ESQL/C -- in 4.1x, you should only release either the declared cursor or the prepared statement; in 6.0x, you need to free both. The other difference is that 6.0x is NLS-aware. If you are using NLS features, this will be important. Yours, Jonathan Leffler (johnl@informix.com) #include <disclaimer.h>