Einzelnen Beitrag anzeigen

hoika

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

AW: FireDac ODBC Query bringt alte Daten

  Alt 25. Aug 2022, 10:38
Hasllo,
es wurde doch bereits alles gesagt.

Query1 benutzt Transaktion1
Query2 benutzt Transaktion2
Query3 ist deine externe Abfrage

Die beiden kommen sich nicht ins Gehege dank des Transaktionsmanagements von Firebird.
Wenn nichts weiter eingestellt ist, gilt "Read Committed"

Wenn Query1 z.B. 10.000 Selects macht (Lagerinspektion) und Query2 "zwischendurch" einen Änderung am Lager vernimmt, interessiert das Query1 nicht.
Jeder arbeitet praktisch mit einer Kopie der DB zum Zeitpunkt des Starts der jeweiligen Transaktion.

Bei Query3 startest du (ohne es zu Wollen/Wissen) immer eine neue Transaktion, die Änderungen der vorherigen Queries sind also sichtbar, sofern sie committed sind.

Lösung.
Du muss bei den Queries explizit ein StartTransaction/Commit machen.
Heiko
  Mit Zitat antworten Zitat