Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.149 Beiträge
 
Delphi 12 Athens
 
#2

AW: Table Query synchronisieren

  Alt 3. Mär 2012, 12:36
Delphi-Referenz durchsuchenTDataSet.Locate
Durchläuft zwar auch das DataSet, aber erstmal mußt du das nicht jedesmal durchlaufen und eventuell auch noch etwas Flotter.

DataModule1.ZTable1.fieldByName('Counter').AsInteger hätte man am Anfang in eine Variable speichern können, anstatt es jedesmal erneut auszulesen.
Und deine Schleife ist falschrum ... WHILE, denn was wird wohl passieren, wenn es in ZReadOnlyQuery2 mal keinen Record gibt und worauf würde dann verglichen.

Und Locate würde intern auch nicht jedesmal das Feld neu suchen DataModule1.ZReadOnlyQuery2.fieldByName('Counter'). , sondern sich ebenfalls, vor dem Durchlauf, nur einmal das Feld besorgen.

Delphi-Quellcode:
i := DataModule1.ZTable1.FieldByName('Counter').AsInteger;
DS := DataModule1.ZReadOnlyQuery2;
DS.DisableControls;
DS.First;
F := DS.FieldByName('Counter');
while not DS.EOF and (F.AsInteger <> i) do
  DS.Next;
DS.EnableControls;
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu ( 3. Mär 2012 um 12:43 Uhr)
  Mit Zitat antworten Zitat