Home General
New Blog Posts: Merging Reports - Part 1 and Part 2

'Out of Memory' error

edited March 2006 in General
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

Comments

  • edited March 2006
    Hi Bill,

    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

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited March 2006
    Bill,
    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.

    --
  • edited March 2006
    The reports have basically the standard stuff like text, lables, memo and
    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

  • edited March 2006
    Hi 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

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited March 2006
    We are using IBX and Interbase 6.0.2.0. RB version is 7.01. We haven't tried
    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

  • edited March 2006
    Hi 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

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited March 2006
    Where do I find the autocreate forms list? I couldn't find it under
    Project>Options...

    I will try the demo to run it on the data.

    Thank you.

    Bill


  • edited March 2006
    Hi 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

    Best Regards,

    Nico Cizik
    Digital Metaphors
    http://www.digital-metaphors.com
  • edited April 2006
    Look at the size of your columns in the tables you are working.
    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
This discussion has been closed.