AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TZQuery: Ergebnis wird nicht aktualisiert?
Thema durchsuchen
Ansicht
Themen-Optionen

TZQuery: Ergebnis wird nicht aktualisiert?

Ein Thema von FBrust · begonnen am 3. Okt 2008 · letzter Beitrag vom 4. Okt 2008
Antwort Antwort
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#1

TZQuery: Ergebnis wird nicht aktualisiert?

  Alt 3. Okt 2008, 15:11
Datenbank: Firebird • Version: 1.5 • Zugriff über: Zeos 6.6.3
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:
    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;
Kann es sein, dass die Abfrage nur einen Cache einliest? Wie gesagt, wenn ich die Verbindung trenne und neu aufbaue, klappts.

Weiss jemand, woran das liegt und welche Eigenschaft der Abfrage (oder der Connection) ich ändern muss?

Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: TZQuery: Ergebnis wird nicht aktualisiert?

  Alt 4. Okt 2008, 14:45
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
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#3

Re: TZQuery: Ergebnis wird nicht aktualisiert?

  Alt 4. Okt 2008, 17:08
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
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
D5X2

Registriert seit: 4. Feb 2006
6 Beiträge
 
#4

Re: TZQuery: Ergebnis wird nicht aktualisiert?

  Alt 4. Okt 2008, 20:06
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.
  Mit Zitat antworten Zitat
Benutzerbild von Die Muhkuh
Die Muhkuh

Registriert seit: 21. Aug 2003
7.332 Beiträge
 
Delphi 2009 Professional
 
#5

Re: TZQuery: Ergebnis wird nicht aktualisiert?

  Alt 4. Okt 2008, 20:10
Sollte in den neueren TransactIsolationLevel mit tiReadCommitted sein.
  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 20:32 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