Wenn die
Query mit datensensitiven Steuerelementen verbunden ist (TDBEdit, TDBGrid o.ä.) bringt das Einschließen in einen 'DisableControls/Enablecontrols' block sehr viel Performance, da die Daten bei jedem 'Next' nicht neu gezeichnet werden müssen.
Delphi-Quellcode:
MyQuery.DisableControls;
Try
MyQuery.First;
While not MyQuery.Eof do Begin
...
MyQuery.Next;
End;
Finally
MyQuery.EnableControls;
End;
Eigentlich sollte man die aktuelle Position des Datensatzzeigers mitspeichern, damit die durch die Schleife vorgenommene Verschiebung Desselben rückgängig gemacht wird.
Delphi-Quellcode:
Var
BookMark : TBookmark;
Begin
MyQuery.DisableControls;
BookMark := MyQuery.GetBookmark(); // Heißt das so?
Try
MyQuery.First;
While not MyQuery.Eof do Begin
...
MyQuery.Next;
End;
Finally
MyQuery.GotoBookmark(Bookmark);
MyQuery.FreeBookmark(Bookmark);
MyQuery.EnableControls;
End
End