Freigeben über


Steuern von Transaktionen (ADO)

ADO unterstützt die Transaktionsverarbeitung in einer Verbindung mithilfe der BeginTrans, CommitTransund RollbackTrans Methoden für ein Connection-Objekt. Die allgemeine Idee 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 des Vorgangs aktualisiert werden und dass die beiden Produktnamen entweder ausgetauscht oder gar nicht geändert werden.

Ausführliche Diskussionen zur Transaktionsverarbeitung finden Sie unter Aktualisieren und Speichern von Daten.