Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Stack Überlauf bei QUick Report (https://www.delphipraxis.net/16039-stack-ueberlauf-bei-quick-report.html)

Praktikant 9. Feb 2004 14:24


Stack Überlauf bei QUick Report
 
Verwende den Quickreport um Datensätze aus einer Tabelle herauszunehmen und dann aufzulisten.
Nun sind das zum Teil einige Datensätze - sagen wir mal 400 á 10 Spalten.

Da ist dann der Rechner irgendwie überlastet und geht in die Knie, nach so einer halben Minute kommt dann die Fehlermeldung von wegen Stack Überlauf...


Wie kann ich das verhindern?

Treffnix 9. Feb 2004 14:35

Re: Stack Überlauf bei QUick Report
 
Also 400 Datensätze sollten eigentlich noch kein Problem darstellen. Vermutlich ist das Problem selbst gestrickt. Geh doch mal mit dem Debugger durchs Programm und schau, wo er so lange braucht.

Memo 9. Feb 2004 15:05

Re: Stack Überlauf bei QUick Report
 
Wie heißt die Fehlermeldung genau(Nummer)?
Zum testen erhöhe mal unter Projektoptionen-Linker die Maximale Stackgröße.

Praktikant 9. Feb 2004 15:54

Re: Stack Überlauf bei QUick Report
 
die Fehlermeldung besitzt keine Nummer.
Heisst nur exception der Klasse EStackOverflow.

Bis zu was für einem max. Wert soll/kann ich die Stackgröße erhöhen?

Wüßte nun nicht wo der Fehler herrührt.

Ausschnitt aus Quellcode:
Delphi-Quellcode:
  Labelschreiben //beschreibt ein paar Labels im Kopf des QRs
  Temp_bereich   //in einem array[5] wird der größte/kleinste Wert der Datensätze festgehalten, so dass der kleinste/größte Wert aller Datensätze übrig bleibt - dieser wird dann in einem label am schluß ausgegeben
  QuickRepTab.Prepare;                          // Report wird initialisiert
  PageCount := QuickRepTab.QRPrinter.PageCount; // Pagecount ist eine private Variable im Formular
  QuickRepTab.Preview;

BluesKid 9. Feb 2004 16:00

Re: Stack Überlauf bei QUick Report
 
Moin moin

Ich hatte da mal ein ähnliches Problem.

Ich hatte glaub ich ForceNewPage und ReprintOnNew beide auf true...irgend wie sowas (is schon was her) aber schau dich da doch mal um..

schönen Gruß

Sam :wink:

Memo 9. Feb 2004 17:07

Re: Stack Überlauf bei QUick Report
 
Zitat:

Zitat von Praktikant
Bis zu was für einem max. Wert soll/kann ich die Stackgröße erhöhen?

50000 Byte

Delphi-Quellcode:
  Labelschreiben //beschreibt ein paar Labels im Kopf des QRs
  Temp_bereich   //in einem array[5] wird der größte/kleinste Wert der Datensätze festgehalten, so dass der kleinste/größte Wert aller Datensätze übrig bleibt - dieser wird dann in einem label am schluß ausgegeben
  QuickRepTab.Prepare;                          // Report wird initialisiert
  PageCount := QuickRepTab.QRPrinter.PageCount; // Pagecount ist eine private Variable im Formular
  QuickRepTab.Preview;
Wann und wo gibst du das Printer-Object wieder frei?
Noch eine Möglichkeit wäre, dass du einen Endlosreport gebaut hast. Also der Stack, egal wie groß nie reichen wird.

Praktikant 10. Feb 2004 07:40

Re: Stack Überlauf bei QUick Report
 
es ist ja so dass der QR bei weniger Datenmengen funktioniert.
Und am freigeben kann's imo doch auch nicht liegen, da der QR zuerst angezeigt werden sollte bevor man's freigeben kann. :gruebel:

Naja, schau mir mal die einzlnen Objects im QR an, aber das meiste ist auf false :|

Update:
Also, es hängt definitiv mit dem erzeugen einer weiteren Seite zusammen.
Sobald der QR eine weitere Seite erzeugen muß gibt's einen Stack Überlauf.
Aber schon komisch, es hatte damals, als ich testweise mit ein paar wenigen Werten und viel Lücke eine weitere Seite erzwungen habe funktioniert.
Nun scheint es selbst da nicht mehr zu gehen :gruebel:

Also das Übel ist das QRSubDetail, welches alle Datensätze der Tabelle beinhaltet.

Das BrintBefore und if empty ist false - das onupdate oder was hier geschrieben wurde find ich nirgendwo.


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:17 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz