Zitat von
smudo:
Hallo
,
ich nutze ein TDataSet um Daten im Speicher zu verwalten.
Bei größeren Datenmengen kommt es aber zu Performanceproblemen.
Ein besonderer Engpass ist das Auslesen eines Feldes:
Delphi-Quellcode:
FCells.Locate('id',ARow,[]);
Result:=FCells.FieldByName(IntToHeader(ACol)).asString;
Der erste Schritt (Locate) dauert teilweise mehr als 16 ms.
Ich hab's auch schon mit LookUp oder First und MoveBy versucht,
das Zeitverhalten ändert sich aber nicht.
Wie könnte ich den Vorgang optimieren?
Danke im Voraus
René
Worauf basiert denn Dein DataSet? Als erste Möglichkeit wäre hier die Erstellung eines Index zu nennen. Wenn Du dann einen hast, stelle Locate auf Findkey um, das ist mindestens 10x schneller. Desweiteren solltest Du die Häufig verwendeten Felder als Objekte definieren und nicht mit FieldByname jedesmal danach suchen lassen.