DevTrain Startseite Advanced Developers Conference vom 14.-15. Februar 2011  
  
  
SUCHEN:  
ARTIKEL ONLINE: 525   

Kategorien
.NET
Datenbanken
Web
XML

Allgemein
Camp
Foren
Events
Persönliche Einstellungen
Registrieren
Prämien Shop
Kontakt
Impressum
Über DevTrain

Autoren



 

Forum: ADO.NET | Thema: Isolationsstufen bei Transaktionen | Von: Stephanie Hölzl ( 15.06.2004 17:08)

Hallo,
ich beisse mir gerade die Zähne an den Isolationsstufen aus. Ich benötige ein Beispiel um die Auswirkungen der verschiedenen Isolationsstufen zu demonstrieren. Dabei habe ich mir überlegt, auf einem Formular zwei DataGrids zu hinterlegen mit jeweils den Schaltflächen Laden, Speichern und Commit. Jedes Grid hat eine eigene Connection und greift auf die selbe Tabelle zurück. Siehe folgender Quellcode, aber nur für die eine Hälfte. Die Deklarationen und Prozeduren für die Schaltflächen gibt es jeweils in doppelter Ausführung.

Dim myConnection1 As SqlConnection = New SqlConnection _
("workstation id=MEDION;packet size=4096;integrated security=SSPI;data source=MEDION;persist security info=True;initial catalog=Kontakte")
Dim myTable1 As New DataTable
Dim myAdapter1 As SqlDataAdapter = New SqlDataAdapter _
("Select * FROM Adressen", myConnection1)
Dim myTransaction1 As SqlTransaction

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
grdAdressen1.DataSource = myTable1
grdAdressen2.DataSource = myTable2
End Sub

Private Sub btnLaden1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLaden1.Click
myTable1.Clear()
myAdapter1.SelectCommand.Transaction = myTransaction1
myAdapter1.Fill(myTable1)
End Sub

Private Sub btnSpeichern1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSpeichern1.Click
Dim myCommandBuilder As New SqlCommandBuilder(myAdapter1)
myAdapter1.InsertCommand = myCommandBuilder.GetInsertCommand
myAdapter1.UpdateCommand = myCommandBuilder.GetUpdateCommand
myAdapter1.DeleteCommand = myCommandBuilder.GetDeleteCommand

myConnection1.Open()
myTransaction1 = myConnection1.BeginTransaction(IsolationLevel.ReadCommitted)
myAdapter1.InsertCommand.Transaction = myTransaction1
myAdapter1.UpdateCommand.Transaction = myTransaction1
myAdapter1.DeleteCommand.Transaction = myTransaction1

Try
myAdapter1.Update(myTable1)
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
End Sub

Private Sub btnCommit1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCommit1.Click
Try
myTransaction1.Commit()
Catch ex As Exception
myTransaction1.Rollback()
Finally
myConnection1.Close()
End Try
End Sub


Problem ist nun, dass sich nichts verändert, egal welche Isolationsstufe ich für die Transaktion festlege. Bei einem Zugriff auf SQL Server ist immer der Zugriff komplett gesperrt, während bei dem gleichen Beispiel mit Access immer die Datensätze vor dem Commit ausgelesen werden.

Das setzen der Isolationsstufen hat in diesem Beispiel also keinerlei Auswirkung. Warum ist das so???

Danke schon mal

und Grüße

Steffi



Betreff Von Datum
Re: Isolationsstufen bei Transaktionen
Konnen Sie den "Transactional" Attribute benutzen?
G. Guest 15.06.2004 22:31
Re: Isolationsstufen bei Transaktionen
The subject should be enough
G. Guest 15.06.2004 22:34
Re: Isolationsstufen bei Transaktionen
???
Stephanie Hölzl 16.06.2004 01:16

Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!

 Betreff:
 Nachricht: Den Beitrag finden Sie nun unter: http://beta.devtrain.de/foren Die Benutzerdaten und Foreninhalte von beta.devtrain.de und www.devtrain.de sind die selben.
Sie können sich dort sogar per RSS über neue Inhalte informieren lassen.
Bei Problemen bitte direkt Mail an asp [AT] ppedv.de.

 Signatur:

  



Login
Username:


Passwort:






Passwort vergessen?

Visual Studio 1 Magazin

© Copyright 2003 ppedv AG