'Out of Memory' error
We have encounter 'Out of Memory' error when running large reports. The
reports are 1,000+ pages. We are using RB 7.01 for Delphi 7. Some reports
are complex but some are pretty simple (no subreports). The one thing we
tried that seems to work is turning on the UniDirectional property to true
on the dataset component. But sometimes this produces a problem when
previewing the report in the Native mode (going back and forth on pages).
Any suggestions on what's best way to avoid the error, or is there a patch
for the version of RB 7.01 for memeory issues? Thank you.
Bill
reports are 1,000+ pages. We are using RB 7.01 for Delphi 7. Some reports
are complex but some are pretty simple (no subreports). The one thing we
tried that seems to work is turning on the UniDirectional property to true
on the dataset component. But sometimes this produces a problem when
previewing the report in the Native mode (going back and forth on pages).
Any suggestions on what's best way to avoid the error, or is there a patch
for the version of RB 7.01 for memeory issues? Thank you.
Bill
This discussion has been closed.
Comments
What do these reports consist of? Are they primarily text based reports or
do they each contain multiple large images per page?
I recommend first upgrading to RB 7.04 and seeing if that helps the issue.
Contact info@digital-metaphors.com for upgrade instructions.
Next, try disabling the Report Outline and be sure Report.CachePages is set
to False.
--
Regards,
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
You could try compiling with FastMM4
http://sourceforge.net/projects/fastmm/
The default memory manager in delphi is prone to fragmentation which
could lead to out of memory errors. fastmm4 is not prone to this and
may even speed up the report generation!
Regards,
Will.
--
variables, but I wouldn't say it's overwhelming amount of them, and no
images at all.
We did try the setting both Outline and CachePage to off and it did help by
producing more pages but still eventually prodcued the error. Only by
combining with setting UniDirectional to true seems to get it through all
the way.
Bill
Which database/connectivity are you currently using? Have you tried using
the latest version of RB 7 (7.04)?
--
Regards,
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
7.04, is it free to upgrade?
Do you see any side/negative effects by setting UniDirectional to true for
the IBX component such as TIBQuery that queries the report data? The Help
file says "...UniDirectional is only concerned with whether the cursor
permits backward or random navigation." does that mean it would affect the
backward or forward navagation when previewing in Native mode? I tested out
on my report and it doesn't seem to affect it. I can still page back and
forth in Native mode.
Thank you.
Bill
Yes, ReportBuilder does not support the use of unidirectional datasets.
ReportBuilder needs the ability to move forward and backward through a
dataset in order to function properly.
Try checking your autocreate forms list in the options section of your
project. If you are creating a number of forms automatically, this could be
causing the error. Also, are you able to reproduce the error using any of
our demo applications?
--
Regards,
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
Project>Options...
I will try the demo to run it on the data.
Thank you.
Bill
Right when you open the Project | Options dialog, in the "Forms" tab you
will see a list of the autocreated forms in the left listbox.
--
Regards,
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
Nico Cizik
Digital Metaphors
http://www.digital-metaphors.com
It seems that ReportBuilder always allocates memory looking at the size
of the column. And if you have some calculations in your report, no
matter what you set cachepages, it always caches the pages -_-
To reduce memory usage, I modified my queries such as this:
select substring(column_name , size_you_display_in_report)
from your_table
- Huseyin