REPLACE/CONCAT error in compiler

gander

New Member
I'm developing a window with multiple pages (no tabs). I designed page 0 with some common buttons on it and Page 1 with a splash image. After that I began adding pages which contained SDOs Browsers, Toolbars and Viewers. All was going fine until I reached the seventh page and the sixth object on that page. When I tried to save (compile on save is set), Progress hit an error "REPLACE/CONCAT may not result in data > 32000 bytes". The compilation failed and in the code preview I can see that it failed to complete the creation of a CASE statement. Does anyone know anything about this? Is there a fix or a workaround? Will I have to rethink my design? Any thoughts would be greatly appreciated.
 
gander said:
When I tried to save (compile on save is set), Progress hit an error "REPLACE/CONCAT may not result in data > 32000 bytes". The compilation failed and in the code preview I can see that it failed to complete the creation of a CASE statement.
In adm-create-objects perhaps?

The Appbuilder is trying to pass the contents of the erroneous procedure (adm-create-objects contains your object definitions, so the more there are, the bigger it is) to an ordinary character variable, which is overloaded past the 32K limit, producing the error you see.

gander said:
Does anyone know anything about this? Is there a fix or a workaround? Will I have to rethink my design? Any thoughts would be greatly appreciated.
Yep, you should rethink your design - put the objects into SmartFrames, according to their context. Although this is caused by a Progress limitation, it's a good idea to split your application into reusable components anyway.

A workaround is to load the (correct) .w into the procedure editor, and save using that. Will only cause problems in the long run though - go for the redesign if you can.

HTH

Lee
 

Picasso

New Member
Replace/Concat

Character variables used to accumulate data in a loop can also cause this error, if the data accumulated exceeds the allocated size (32000 bytes), if you are accumulating a string variable that may exceed this limit, simply create a temp table with an index (to store the creation order) and on each loop and/or at intermittent areas within the loop that may cause this error write the data to the temp-table, clear the variable and re-use.

Then replace the use of the variable with the temp-table. This will cure the replace/concat error should this be your cause.
 

NADIPINENI

New Member
I got this error because of large bar i kept in a report . after i removed that, I m done. so make sure to remove any large background areas for good formatting. or split them into smaller ones.

Thanks
Sreedhar
 
Hmm.

Rereading this old thread, and bearing in mind the Sausage King of Chicago's amusing recent plea for housekeeping, I should point out that although Picasso is right in their explanation of a frequent runtime cause of this error, they were wrong in this instance, and Lee Curzon's (my) comprehensive answer was almost certainly exactly the correct solution to the original question, although OP gander couldn't be bothered clarifying that by returning a fraction of the effort and acknowledging it with a simple "Thanks, that worked.".

Which all-too-frequent lazy discourtesy is one of the reasons I no longer bother.
 
Top