AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stack Überlauf bei QUick Report

Ein Thema von Praktikant · begonnen am 9. Feb 2004 · letzter Beitrag vom 10. Feb 2004
Antwort Antwort
Praktikant

Registriert seit: 24. Sep 2003
131 Beiträge
 
Delphi 5 Enterprise
 
#1

Stack Überlauf bei QUick Report

  Alt 9. Feb 2004, 15:24
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?
  Mit Zitat antworten Zitat
Benutzerbild von Treffnix
Treffnix

Registriert seit: 25. Jun 2003
Ort: AC
740 Beiträge
 
Delphi 7 Professional
 
#2

Re: Stack Überlauf bei QUick Report

  Alt 9. Feb 2004, 15:35
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.
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Stack Überlauf bei QUick Report

  Alt 9. Feb 2004, 16:05
Wie heißt die Fehlermeldung genau(Nummer)?
Zum testen erhöhe mal unter Projektoptionen-Linker die Maximale Stackgröße.
  Mit Zitat antworten Zitat
Praktikant

Registriert seit: 24. Sep 2003
131 Beiträge
 
Delphi 5 Enterprise
 
#4

Re: Stack Überlauf bei QUick Report

  Alt 9. Feb 2004, 16:54
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;
  Mit Zitat antworten Zitat
Benutzerbild von BluesKid
BluesKid

Registriert seit: 2. Sep 2003
Ort: NRW
133 Beiträge
 
Delphi 2005 Professional
 
#5

Re: Stack Überlauf bei QUick Report

  Alt 9. Feb 2004, 17:00
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
  Mit Zitat antworten Zitat
Benutzerbild von Memo
Memo

Registriert seit: 19. Aug 2003
509 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Stack Überlauf bei QUick Report

  Alt 9. Feb 2004, 18:07
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.
  Mit Zitat antworten Zitat
Praktikant

Registriert seit: 24. Sep 2003
131 Beiträge
 
Delphi 5 Enterprise
 
#7

Re: Stack Überlauf bei QUick Report

  Alt 10. Feb 2004, 08:40
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.

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

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.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:04 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