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.