Datenzugriff in While not … eof Schleifen unter Delphi beschleunigen

Viele Anwender gehen sicherlich wie folgt vor, wenn man einen Code hat, der durch einzelne Datensätze einer Tabelle oder Query läuft:

while not table.eof do
begin
:= table.fieldbyname(‘ErstesFeld’).AsString;
:= table.fieldbyname(‘ZweitesFeld’).AsString;
table.next;
end;

Wesentlich effizienter im Hinblick auf eine schnellere Ausführung ist dabei aber folgendes Vorgehen:

Var
feld1, feld2 : TField;

begin
feld1 := table.fieldbyname(‘ErstesFeld’);
feld2 := table.fieldbyname(‘ErstesFeld2’);
while not table.eof do
begin
:= feld1.AsString;
:= feld2.AsString;
table.next;
end;

Nachteil ist natürlich: mehr Code, Vorteil ist aber eine schnellere Ausführungsgeschwindigkeit, wobei dies natürlich nur zum Tragen kommt, wenn man sehr viele Daten verarbeiten muss. Bei nur 2-3 Spalten und 10 Datensätzen lohnt es natürlich.

Diese Vorgehensweise führt dazu, dass Fieldbyname nur einmal ausgeführt werden muss und Delphi nicht jedes mal das Feld finden muss, was bei vielen Daten dann eben zeitsparend ist.

Kleiner Tipp: tippt man eof und dann die [Space] Taste so fügt Delphi den Codeblock

while not table.eof do
begin
table.next;
end;

automatisch ein. Gleichzeitig wird der Sync-Bearbeitungsmodus gestartet mit Focus auf das Wort „table“, die erlaubt dann das Ändern dieses Begriffs zum wirklichen Tabellennamen, was natürlich an allen Stellen dann synchron geändert wird.

Werbung & Infos:

avast sommer-angebote 2025


Extra HP Gutschein für Dich als mein Leser

Spare jetzt 10% beim Kauf eines Notebooks mit dem Gutschein HPMB10. Auch gültig für andere Produkte im HP Store und auch gültig für bereits rabattierte Angebote. Du kannst mit dem HP Gutschein also noch mal 10% extra sparen, acuh wenn ein Produkt bereits im Angebot ist.



Verwandte Themen: