Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Table Query synchronisieren (https://www.delphipraxis.net/166871-table-query-synchronisieren.html)

ATS3788 3. Mär 2012 11:48

Datenbank: Firebird • Version: 2,5 • Zugriff über: Zeos

Table Query synchronisieren
 
Hallo

Delphi-Quellcode:
            DataModule1.ZReadOnlyQuery2.First;
            DataModule1.ZReadOnlyQuery2.DisableControls;
            repeat
            if DataModule1.ZTable1.fieldByName('Counter').AsInteger =
            DataModule1.ZReadOnlyQuery2.fieldByName('Counter').AsInteger then
            break
            else
            DataModule1.ZReadOnlyQuery2.Next;
            until DataModule1.ZReadOnlyQuery2.EOF;
            DataModule1.ZReadOnlyQuery2.EnableControls;
            end; end;
Ich habe den Code im Internet gefunden um Tables/Querys zu synchronisieren. Wird ja jedesmal die Datenbank durchlaufen
bis der Datensatz gefunden. Kann man das besser lösen.

Ich freue mich auf Antworten

himitsu 3. Mär 2012 12:36

AW: Table Query synchronisieren
 
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.

Delphi-Quellcode:
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
Delphi-Quellcode:
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;

ATS3788 3. Mär 2012 17:39

AW: Table Query synchronisieren
 
danke himitsu

mhh hatte ich ja ganz vergessen den befehl.

martin michael


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz