AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein TCLientDataSet SaveToFile performanter gestalten?
Thema durchsuchen
Ansicht
Themen-Optionen

TCLientDataSet SaveToFile performanter gestalten?

Ein Thema von muHAHA · begonnen am 10. Okt 2019 · letzter Beitrag vom 11. Okt 2019
Antwort Antwort
muHAHA

Registriert seit: 10. Okt 2019
2 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

TCLientDataSet SaveToFile performanter gestalten?

  Alt 10. Okt 2019, 14:18
Guten Tag, ich bin neu hier und hoffe ich habe jetzt nichts falsch platziert. Folgende Fragestellung: Ich möchte Daten persistent speichern und das nach jedem neuen Eintrag um Datenverlust zu vermeiden. Dabei wird AddEntry relativ häufig aufgerufen.
Bisher nutze ich dafür TClientDataSet, habe dabei aber das Problem, dass durch die wachsende Datenmenge der Vorgang irgendwann recht langsam ist.
Ich hatte schon TMemtable als Ersatz probiert, dies war aber im Vergleich noch langsamer. Nun also die Frage, gibt es Wege, dass ganze perfomanter zu gestalten?
Code:
procedure TDataSetMap.AddEntry(const AUId: string; const ATarget: Integer);
   var EntryExists: boolean;
begin
  EntryExists := GoToUId(AUId, true);

  if not EntryExists then begin

    EntryExists := GoToUId(AUId, false);

    if not EntryExists then begin
      FTmpClientDataSet.Append;
      FTmpClientDataSet.FieldByName('UId').AsString := AUId;
      FTmpClientDataSet.FieldByName('Target').AsInteger := ATarget;
      FTmpClientDataSet.Post;
      FTmpClientDataSet.SaveToFile(FTempPath);
    end;
  end;
end;
  Mit Zitat antworten Zitat
freimatz

Registriert seit: 20. Mai 2010
1.443 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: TCLientDataSet SaveToFile performanter gestalten?

  Alt 10. Okt 2019, 15:12
TDataSet verwenden und eine Datenbank.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.093 Beiträge
 
Delphi 12 Athens
 
#3

AW: TCLientDataSet SaveToFile performanter gestalten?

  Alt 10. Okt 2019, 15:21
Eventuell das SaveToFile kapseln und im Hintergrund ausführen.
Dann muss das TmpClientDataSet aber gegen doppeltes Schreiben geschützt werden,
ist mit etwas Aufwand verbunden.

Wenn aber nur selten/wenige/von einer Stelle aus Daten geändert werden könnte das eine Option sein.
  Mit Zitat antworten Zitat
muHAHA

Registriert seit: 10. Okt 2019
2 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

AW: TCLientDataSet SaveToFile performanter gestalten?

  Alt 11. Okt 2019, 10:43
Danke für die schnellen Antworten.
  Mit Zitat antworten Zitat
FoxAlight

Registriert seit: 11. Okt 2019
1 Beiträge
 
#5

AW: TCLientDataSet SaveToFile performanter gestalten?

  Alt 11. Okt 2019, 16:23
Probier doch mal TDictionary. Hatte schon mal soetwas ähnliches und mit TDictionary ging es relativ fix.
  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 10:29 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