AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TClientDataSet - Systemressourcen Erschöpft
Thema durchsuchen
Ansicht
Themen-Optionen

TClientDataSet - Systemressourcen Erschöpft

Offene Frage von "SonicTTH"
Ein Thema von SonicTTH · begonnen am 5. Mai 2010 · letzter Beitrag vom 6. Mai 2010
Antwort Antwort
SonicTTH

Registriert seit: 12. Dez 2008
Ort: Rostock
54 Beiträge
 
#1

TClientDataSet - Systemressourcen Erschöpft

  Alt 5. Mai 2010, 17:24
Datenbank: XML • Zugriff über: ClientDataSet
Hallo,

Ich habe ein kleines Programm geschrieben, mit dem man Tagebuch führen kann. Die Einträge werden mit ID (Integer), Datum (TDateTime), Titel (String) und Inhalt (Memo) erfasst und per TClientDataSet in eine XML Datei geschrieben. Das Funktioniert soweit sehr gut. Ich habe nun ein paar tests durchgeführt, für welche ich ein extra tool geschrieben habe, dass mir eine solche tabelle mit zufälligem inhalt (Memo) von ca 2000 zeichen pro datensatz generiert. Ich habe damit eine Tabelle mit insgesamt 10.000 Datensätzen generiert; Daraus resultierte eine ca 35 MB große xml datei. Wenn ich diese datei nun in mein Tagebuch-Programm lade und einen der datensätze aufrufe erhalte ich die meldung "Systemressourcen Erschöpft".

Ein nebeneffekt dieser Meldung ist, dass das Navigationspanel meines programms keine grafiken (hintergrundgrafik + icons) mehr anzeigt und ich somit, sobald diese meldung aufgetaucht ist, den Prozess töten muss.

Ich habe bereits dieses Forum durchsucht und bin auch auf Threads, in denen es um diese Fehlermeldung geht, gestoßen. Allerdings bezieht sich keiner von diesen auf das TClientDataSet. Da dieser Fehler jedoch erst bei einem Test mit der Verwendung einer Tabelle in solchen größenordnungen aufgetreten ist, vermute ich, dass es da einen Zusammenhang gibt.

Ich verwende Delphi 6 Enterprise.
Ausser dem TClientDataSet verwende ich die "besonderen" Komponenten
TShellTreeView und TImage (Mit *.ico Dateien als Buttons).

Könnt Ihr mir sagen womit genau dieser Fehler zusammenhängt und wie ich ihn behandeln könnte? Wäre es evtl besser statt dem xml format lieber z.b. ADO zu verwenden?
  Mit Zitat antworten Zitat
kamel08
(Gast)

n/a Beiträge
 
#2

Re: TClientDataSet - Systemressourcen Erschöpft

  Alt 5. Mai 2010, 19:04
versuch mal folgendes
ClientDataSet.Filename := 'Test.cds';
ClientDataSet.SaveToFile(ClientDataSet.FileName, dfBinary); // als *.cds - Datei speichern
  Mit Zitat antworten Zitat
SonicTTH

Registriert seit: 12. Dez 2008
Ort: Rostock
54 Beiträge
 
#3

Re: TClientDataSet - Systemressourcen Erschöpft

  Alt 5. Mai 2010, 19:50
Ich probiers mal aus.

Muss ich denn vom ClientDataSet die option FileName verwenden? Ich hab das eigentlich nie gemacht. Das einzige was ich auf die datei an sich bezogen damit mache ist LoadFromFile und SaveToFile...

Kannst du mir mal sagen was das bringen sollte bitte?
  Mit Zitat antworten Zitat
SonicTTH

Registriert seit: 12. Dez 2008
Ort: Rostock
54 Beiträge
 
#4

Re: TClientDataSet - Systemressourcen Erschöpft

  Alt 5. Mai 2010, 22:26
Es sei angemerkt: Ich hab das jetzt noch nicht versucht mit der dateiendung *.cds und der zuweisung der aktuellen datei auf die eigenschaft "FileName" des TClientDataSet, trotzdem funktionierts auf einmal... Also ich kann die datenbank durchsuchen und einträge aufrufen ohne probleme, und das auch super schnell mit nicht merkbarer verzögerung zwischen den klicks der kategorien...

Das is iwie scheiße mit sonem sporadischen fehler...

/edit: Ich habe bei einem weiteren test (Datenbank öffnen bzw. "laden") die meldung "Ungültiger Handle" erhalten... Ich hab keine ahnung woher das kommen könnte.

Bitte helft mir
  Mit Zitat antworten Zitat
kamel08
(Gast)

n/a Beiträge
 
#5

Re: TClientDataSet - Systemressourcen Erschöpft

  Alt 6. Mai 2010, 15:51
Zitat von SonicTTH:

Kannst du mir mal sagen was das bringen sollte bitte?
Klar, also die Zuweisung
ClientDataSet.Filename := 'Test.cds'; könnte man verwenden, muß man aber nicht und sollte nur ein Vorschlag sein.

Wichtig ist, dass die Endung _nicht_ *.xml ist
und die Anweisung
ClientDataSet.SaveToFile(ClientDataSet.FileName, dfBinary);

das _ dfBinary _ beinhaltet, dann sollte eine Binärdatei entstehen.
Schneller und kleiner als XML. Vielleicht findet man dann noch die anderen Fehler,
aber ohne einen code-ausschnitt zu sehen, ist das schwierig.
MfG
  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 07:53 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