![]() |
Datenbank: Firebird • Version: 1.5 • Zugriff über: Zeos 6.6.3
TZQuery: Ergebnis wird nicht aktualisiert?
Hallo,
ich habe einen PC, auf dem laufen ein Firebird-1.5-Server und ein Programm (Programm A), dass Daten in eine Tabelle in einer Datenbank auf diesem Rechner schreibt. Auf einem anderen PC läuft ein Programm (Programm B), dass die Daten aus dieser Tabelle auslesen und anzeigen soll. Das Auslesen und Anzeigen klappt aber nur, wenn die Connection für die Datenbank getrennt und neu aufgebaut wird, d. h. beim Start von Programm B wird der aktuelle Inhalt der Tabelle (ist genau ein Datensatz) angezeigt. Wenn nun zwischenzeitlich Programm B neuen Inhalt in die Tabelle schreibt, zeigt Programm A trotzdem noch den vorherigen Inhalt an. Der Ablauf sieht dann so aus: - Programm A schreibt Daten in Tabelle - Programm B wird gestartet und zeigt korrekte Daten an - Programm A schreibt neue Daten in die Tabelle - Programm B führt untenstehenden Code aus, zeigt aber trotzdem die vorherigen Daten an. - Programm B trennt Verbindung und baut sie neu auf - Programm B zeigt nun die korrekten, aktuellen Daten an. Hier der Code zum Auslesen:
Delphi-Quellcode:
Kann es sein, dass die Abfrage nur einen Cache einliest? Wie gesagt, wenn ich die Verbindung trenne und neu aufbaue, klappts.
qryTemp := TZQuery.Create(Application);
with qryTemp do begin Connection := dmGeneral.condb; SQL.Text := 'SELECT * FROM TBLCURRENTTRACK'; try Open; showmessage(FieldbyName('STRTRACK').AsString); Close; except on E:Exception do ShowWarning('Fehler bei Ermittlung aktueller Track, Meldung: ' + E.Message); end; end; qryTemp.Free; Weiss jemand, woran das liegt und welche Eigenschaft der Abfrage (oder der Connection) ich ändern muss? Gruß Frank |
Re: TZQuery: Ergebnis wird nicht aktualisiert?
Hallo,
ein Cache ist es nicht, aber so in etwa .. transaction isolation level heisst das Stichwort Unter Zeos muss ein Programm (hier B) eine neue Transaktion starten, um die von A geschriebenen Daten zu lesen. AFAIK geht das in ZEOS nur, wenn die Connection gelöst und neu connected wird. Heiko |
Re: TZQuery: Ergebnis wird nicht aktualisiert?
Hallo,
danke für Deine Antwort. Mal sehen, vielleicht funktioniert es auch, wenn ich die Transaktionssteuerung selbst in die Hand nehme (ansonsten muss ich halt kurz die Verbindung trennen und neu aufbauen). Gruß Frank |
Re: TZQuery: Ergebnis wird nicht aktualisiert?
Ich hatte letztens das selbe Problem. Ich setze allerdings eine ältere Zeos Version ( 5.x ) ein. Ich habe das Problem gelöst, indem ich die Einstellung TransIsolation von itDefault auf itReadCommittedRec gesetzt habe. Bei den neueren Versionen heißen die Optionen wohl etwas anders, aber hier würde ich probieren.
|
Re: TZQuery: Ergebnis wird nicht aktualisiert?
Sollte in den neueren TransactIsolationLevel mit tiReadCommitted sein.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:13 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz