AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Table Query synchronisieren
Thema durchsuchen
Ansicht
Themen-Optionen

Table Query synchronisieren

Ein Thema von ATS3788 · begonnen am 3. Mär 2012 · letzter Beitrag vom 3. Mär 2012
Antwort Antwort
Benutzerbild von ATS3788
ATS3788

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#1

Table Query synchronisieren

  Alt 3. Mär 2012, 12:48
Datenbank: Firebird • Version: 2,5 • Zugriff über: Zeos
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
Martin MIchael
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Table Query synchronisieren

  Alt 3. Mär 2012, 13: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;
$2B or not $2B

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

Registriert seit: 18. Mär 2004
Ort: Kriftel
646 Beiträge
 
Delphi XE Starter
 
#3

AW: Table Query synchronisieren

  Alt 3. Mär 2012, 18:39
danke himitsu

mhh hatte ich ja ganz vergessen den befehl.

martin michael
Martin MIchael
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:23 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