Freigeben über


Steuern von Transaktionen (ADO)

ADO unterstützt die Transaktionsverarbeitung in einer Verbindung mithilfe der Methoden BeginTrans, CommitTrans und RollbackTrans für ein Connection-Objekt. Der Grundgedanke der Implementierung der Transaktionsverarbeitung in ADO wird im folgenden einfachen Codeausschnitt veranschaulicht.

Const DS = "MySqlServer"  
Const DB = "Northwind"  
Const DP = "SQLOLEDB"  
  
Dim oConn As ADODB.Connection  
Dim oRs As ADODB.Recordset  
Dim sConn As String  
  
sConn = "Provider=" & DP & _  
          ";Data Source=" & DS & _  
          ";Initial Catalog=" & DB & _  
          ";Integrated Security=SSPI;"  
  
sSQL = "SELECT ProductID, ProductName FROM Products"  
  
Set oConn = New ADODB.Connection  
oConn.Open sConn  
  
' Create and Open the Recordset object.  
Set oRs = New ADODB.Recordset  
oRs.Open sSQL, oConn, adOpenStatic, adLockOptimistic, adCmdText  
  
If oRs.RecordCount > 1 Then  
  
    oRs.MoveFirst  
    Id1 = oRs("ProductID")  
    Name1 = oRs("ProductName")  
    oRs.MoveNext  
    Id2 = oRs("ProductID")  
    Name2 = oRs("ProductName")  
  
    q = "Switch ID's of " & Name1 & " and " & Name2 & "?"  
    If MsgBox(q, vbYesNo) = vbYes Then  
        oRs.MoveFirst  
        oRs("ProductName") = Name2  
        oRs.Update  
  
        oRs.MoveNext  
        oRs("ProductName") = Name1  
        oRs.Update  
  
        If MsgBox("Save changes?", vbYesNo) = vbYes Then  
  
        Else  
  
        End If  
    End If  
  
End If  
  
oRs.Close  
oConn.Close  

Hier wird die Transaktionsverarbeitung verwendet, um sicherzustellen, dass die beiden Datensätze als eine Einheit aktualisiert werden und dass die beiden Produktnamen entweder ausgetauscht oder gar nicht geändert werden.

Eine ausführliche Betrachtung der Transaktionsverarbeitung finden Sie unter Aktualisieren und Beibehalten von Daten.