AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Programm 2x offen=falsche Daten
Thema durchsuchen
Ansicht
Themen-Optionen

Programm 2x offen=falsche Daten

Offene Frage von "Teekeks"
Ein Thema von Teekeks · begonnen am 26. Jan 2010 · letzter Beitrag vom 27. Jan 2010
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von haentschman
haentschman
Online

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.316 Beiträge
 
Delphi 12 Athens
 
#11

Re: Programm 2x offen=falsche Daten

  Alt 27. Jan 2010, 08:01
Zitat:
Sowas gibt es hier irgendwie nicht...
ZConnection.TransactionIsolationLevel
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.441 Beiträge
 
Delphi 10.4 Sydney
 
#12

Re: Programm 2x offen=falsche Daten

  Alt 27. Jan 2010, 08:50
zeitlicher Ablauf etwas übersichtlicher:
Code:
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
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.
  Mit Zitat antworten Zitat
Teekeks

Registriert seit: 19. Okt 2008
Ort: Dresden
765 Beiträge
 
FreePascal / Lazarus
 
#13

Re: Programm 2x offen=falsche Daten

  Alt 27. Jan 2010, 08:54
Ahh, OK danke. Jetzt geht es.
Wer hätte gedacht dass man erst eine neue Transaktion starten muss... also ich nicht.
Peter
"Div by zero Error" oder auch: "Es geht auch ohne Signatur!".
  Mit Zitat antworten Zitat
alex517

Registriert seit: 23. Nov 2004
Ort: Bernau b. Berlin
273 Beiträge
 
Delphi XE5 Enterprise
 
#14

Re: Programm 2x offen=falsche Daten

  Alt 27. Jan 2010, 12:31
Zitat von hoika:
Das Problem ist, dass Programm 2 (Select)
erst eine neue Transaktion starten muss,
bevor es die Daten von Programm (nach dessen Commit) sehen kann.
Das ist nicht ganz korrekt.
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
Alexander
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 09:00 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