Einzelnen Beitrag anzeigen

rochus

Registriert seit: 23. Dez 2004
Ort: Dornstadt
30 Beiträge
 
Delphi 7 Enterprise
 
#1

TClientDataSet; Performance beim Ansteuern von Datensätzen

  Alt 14. Jun 2006, 14:59
Hallo,

Ich bin gerade dabei, einige Funktionen auf Geschwindigkeit zu optimieren. Es geht dabei um eine Datenbankanwendung und es wird TClientDataSet verwendet. Die Sache ist folgende:
Bisher wird bei jeder Datenzeile eine GUID erzeugt (wird benötigt, da komm ich auch nicht drum rum), dann eine Datenbankabfrage gestartet und Detailinformationen ins CDS geschrieben. So, das blöde hier ist jetzt nur, dass das eben für z.B. 200 Zeilen in 200 Datenbankabfragen mündet - und wenn das Netz jetzt mal etwas ausgelastet ist, die Detailtabelle recht groß und so weiter summiert sich das recht hübsch! Ich ändere das jetzt dahin, dass über alle Zeilen die Abfrage erstellt wird. Das Problem dabei ist jetzt aber, dass nicht für jede Zeile ein DB-Abfrage gemacht werden muss. Die Frage ist jetzt, mit welcher Methode ich am schnellsten den Datensatzzeiger innerhalb des CDS bewege bzw mit sichere. ein .Locate auf die GUID ist mit Sicherheit das langsamste, einfaches setzen von RecNo über einen geklonten Cursor (
Delphi-Quellcode:
cursor.CloneCursor(OriginalCDS {, ...} );
{ ... }
cursor.RecNo := someValue;
cursor.FieldByName('field').Value := anotherValue;
) scheint mir theoretisch das schnellste.

Gibt es eine schnellere Möglichkeit?

Gruß
Nicolai Waniek
Im Nachhinein ist man immer ein Schlauch!
"Dream as if you'll live forever, live as if you'll die today!" James Dean
  Mit Zitat antworten Zitat