Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Out of Memory (https://www.delphipraxis.net/185003-out-memory.html)

ngott2 7. Mai 2015 06:35

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

Daniel 7. Mai 2015 06:41

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.

ngott2 7. Mai 2015 06:57

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.

hoika 7. Mai 2015 06:57

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

baumina 7. Mai 2015 06:58

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.

hoika 7. Mai 2015 06:59

AW: Out of Memory
 
Hallo,

zu deinem Problem hilft vielleicht das hier.

http://www.ibprovider.com/forum/site....php?f=1&t=756


Heiko

mkinzler 7. Mai 2015 07:06

AW: Out of Memory
 
Ob das bei Access hilft?

Bernhard Geyer 7. Mai 2015 08:19

AW: Out of Memory
 
Für Access sollte die CurserLocation auf clUseServer gestellt werden.
Ansonsten wird jeder Datensatz mindestens 2* im Speicher gehalten.

himitsu 7. Mai 2015 09:19

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?

ngott2 7. Mai 2015 14:15

AW: Out of Memory
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1300589)
Für Access sollte die CurserLocation auf clUseServer gestellt werden.
Ansonsten wird jeder Datensatz mindestens 2* im Speicher gehalten.

clUseServer verwenden wir schon.


Zitat:

Zitat von himitsu (Beitrag 1300602)
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?

Ja lässt sich ausführen.

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 15:39 Uhr.
Seite 1 von 2  1 2      

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