![]() |
Re: Programm 2x offen=falsche Daten
Zitat:
|
Re: Programm 2x offen=falsche Daten
zeitlicher Ablauf etwas übersichtlicher:
Code:
In Prog2 sind nur Datenänderungen aus anderen Transaktionen sichtbar, die vor dem Start der eigenen Transaktion mit Commit freigegeben wurden. Das kann man für Spezialfälle über TransactionIsolationLevel anders einstellen, sollte man aber im Normalfall nicht.
Prog 1 Prog 2
------------------------------------------------------- StartTrans Insert/Update/Delete StartTrans Select -> unveränderte Daten Commit Select -> unveränderte Daten Commit oder Rollback StartTrans Select -> geänderte Daten sind sichtbar |
Re: Programm 2x offen=falsche Daten
Ahh, OK danke. Jetzt geht es.
Wer hätte gedacht dass man erst eine neue Transaktion starten muss... also ich nicht. |
Re: Programm 2x offen=falsche Daten
Zitat:
Das gilt nur bei Verwendung des Transaction-Isolation-Levels SNAPSHOT bzw. RepetableRead. Das sollte aber die Ausnahme sein. Normalerweise wird READ COMMITTED verwendet. Da ist es ausreichend das SQL-Statement erneut auszuführen und es werden alle Daten anderer Transaktionen die mit COMMIT bestätigt sind gesehen. Auch wenn das COMMIT nach dem Start der eigene Transaktion erfolgte. Deshalb ja auch der Name READ COMMITTED. Bei SNAPSHOT hingegen werden alle Daten anderer Transaktionen ignoriert, auch wenn diese mit COMMIT bestätigt wurden. alex |
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:27 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