Re: Problem 4GL program
Posted in 1999
Topics: Connectivity: ESQL/C, 4GL & Embedded SQL
I you talk about cursor names, does this mean that it could help to choose shorter names for my cursors ? I have cursor names with a length between 10 en 20. Doris ---------- From: Jonathan Leffler To: informix-list@iiug.org Subject: Re: Problem 4GL program Date: Wednesday 17 March 1999 8:38 Willaert Doris wrote: > I am transfering my 4GL programs from version 4.13 to version > 7.20.UD6. When I compile a program and try to run it with the > fglgo command I get the following error : > > Program stopped at "sf_druk.4gl", line number 0. > 4GL run-time error number -4453. > The size of the global string table has exceeded the limit of 65535. > > What should I do to resolve this problem. How can I see how much this > program exceeds the global string table. Given that the program was running under 4.13 and isn't under 7.20, the chances are that the original program was very close to the limit, and the cursor name mangling stuff is throwing it over the limit. Basically, you'll have to eliminate (or reduce the size of) some string constants in your program. Maybe there's a report which could be factored out into a separate executable? Or maybe you can wait for 7.30 (due out late Q2) which will raise the limit to somewhere in the gigabyte range (1 GB I think). If you don't know what the cursor name mangling stuff is, be grateful. I spent the entire afternoon writing a (large) email discussing how we might be able to get around it without requiring you to modify your source code. And there were two sections which I really had not done enough on. You could try compiling with -globcurs in the FGLPCFLAGS environment variable, but I'm not confident that does the job; the code still needs an extra (albeit unmangle) version of your cursor name, resulting in more GSS being used in 7.20 than in 4.13. -- Jonathan Leffler (jleffler@informix.com, jleffler@earthlink.net) Guardian of DBD::Informix v0.60 -- see http://www.perl.com/CPAN #include <disclaimer.h>
Willaert Doris wrote: > I you talk about cursor names, does this mean that it could help > to choose shorter names for my cursors ? I have cursor names with > a length between 10 en 20. Not unless you suppress the mangled cursor names. The mangled names are always 18 characters long, the maximum permitted length. >Jonathan Leffler wrote: > Willaert Doris wrote: > > I am transfering my 4GL programs from version 4.13 to version > > 7.20.UD6. When I compile a program and try to run it with the > > fglgo command I get the following error : > > > > Program stopped at "sf_druk.4gl", line number 0. > > 4GL run-time error number -4453. > > The size of the global string table has exceeded the limit of 65535. > > > > What should I do to resolve this problem. How can I see how much > > this program exceeds the global string table. > > Given that the program was running under 4.13 and isn't under 7.20, > the chances are that the original program was very close to the limit, > and the cursor name mangling stuff is throwing it over the limit. > Basically, you'll have to eliminate (or reduce the size of) some > string constants in your program. Maybe there's a report which could > be factored out into a separate executable? Or maybe you can wait > for 7.30 (due out late Q2) which will raise the limit to somewhere in > the gigabyte range (1 GB I think). > > If you don't know what the cursor name mangling stuff is, be grateful. > I spent the entire afternoon writing a (large) email discussing how > we might be able to get around it without requiring you to modify your > source code. And there were two sections which I really had not done > enough on. You could try compiling with -globcurs in the FGLPCFLAGS > environment variable, but I'm not confident that does the job; the > code still needs an extra (albeit unmangle) version of your cursor > name, resulting in more GSS being used in 7.20 than in 4.13. -- Jonathan Leffler (jleffler@informix.com, jleffler@earthlink.net) Guardian of DBD::Informix v0.60 -- see http://www.perl.com/CPAN #include <disclaimer.h>