Problem 4GL program
Posted in 1999
Topics: Connectivity: ESQL/C, 4GL & Embedded SQL
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. TIA Doris Willaert Suzuki belgium sdwilla@suzuki.be
Uhmm, Just how many global variables do you have? And how large are they? -Mikey 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. > > TIA > > Doris Willaert > Suzuki belgium > sdwilla@suzuki.be
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>