Einzelnen Beitrag anzeigen

muHAHA

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

TCLientDataSet SaveToFile performanter gestalten?

  Alt 10. Okt 2019, 13: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