![]() |
Out of Memory
Hallo,
ich bekomme beim .Open in einer Datenbank ein Out of Memory Exception. Manchmal auch an anderen Stellen in der MDB klasse die wir selbst geschrieben haben Die .MDB ist wenige MB groß. Ich kann leider kein Code zeigen aber würde gerne Wissen wir ihr grundsätzlich beim Debuggen eines solchen Problem vorgeht. Denn der Fehler tauchte nun bei 20 verschiednen Stellen auf :pale: immer mit einer Out of Memory Exception. Benutzt ihr irgendwelche Tools dafür ? Danke und gruß ngott2 |
AW: Out of Memory
Das klingt, als würden beim .Open gleich "alle" Datensätze gelesen. Hat Eure Klasse eine Option, die einer "FetchAll"-Eigenschaft entspricht? Sprich: Lässt sich das umbauen, so dass erstmal nur eine Handvoll Datensätze gelesen wird?
Und überhaupt: Wenn die DB nicht so groß ist, stellt sich die Frage, was "alle" Datensätze sind. Ein Kreuzverbund beispielsweise kann eine prekäre Angelegenheit werden, wenn es um den Speicherverbrauch geht. Möglicherweise fehlt da eine Bedingung, die die Ergebnismenge einschränken könnte. Um zu Deiner Frage nach Ansatzpunkten zurück zu kommen: ich würde mit einer Stelle anfangen und schauen, wie das SQL aussieht und wie viele Datensätze da gelesen werden sollten. |
AW: Out of Memory
Jetzt hat es sich aufgehangen. Bei der Funktion "TADOConnection.GetTableNames"
Die MDB hat 5 Tabellen und in dem Zeitpunkt wo der Out of Memory kommt sind diesmal keine Daten drin. Im Open sollten nicht alle geladen werden. |
AW: Out of Memory
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
als "Tool" ist hier FastMM4 zu empfehlen. Die FastMM4.pas einfach als erste Unit in die DPR einbinden, dann sollte es schon mal ein bisschen Klarheit geben. Ich habe mal meine Options-Datei angehängt. Das .pas muss weg, es ist ja eine Inc-Datei. Kleine Info an Daniel: Bitte neben .pas auch .inc beim Hochladen erlauben. Heiko |
AW: Out of Memory
Klingt nach rekursiven Procedur/Funktions-Aufrufen.
Schau dir mal deine Schleifen in proceduren/Funktionen an, ob es da welche gibt die sich (mit Übergabeparametern) immer wieder selbst aufrufen. |
AW: Out of Memory
Hallo,
zu deinem Problem hilft vielleicht das hier. ![]() Heiko |
AW: Out of Memory
Ob das bei Access hilft?
|
AW: Out of Memory
Für Access sollte die CurserLocation auf clUseServer gestellt werden.
Ansonsten wird jeder Datensatz mindestens 2* im Speicher gehalten. |
AW: Out of Memory
Die selbe Abfrage in einem anderem DB-Tool, bzw. mit anderen DB-Komponenten, lässt sich aber ausführen?
[edit] Oder ist hier das Open der Connection gemaint? |
AW: Out of Memory
Zitat:
Zitat:
Hatte gerade ne wichtigere Aufgabe. Das Out of Memory in der DB tritt nur bei jeden 10 Versuch auf. Ansonsten tritt es auf wenn er was in unsere Datei die Records seriell speichert hinzufügen will. Ich habe die Records jetzt einmal gelöscht und lasse sie neu erstellen. Mal sehen vielleicht hilft das. Das Open wird wiederholt aufgerufen. Funktioniert aber in der Regel Einwand frei. Die Fehler tretten nämlich nur bei einen Hersteller auf. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:53 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz