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