Freigeben über


Bearbeiten von Daten

Wir haben erläutert, wie man ADO verwendet, um eine Verbindung zu einer Datenquelle herzustellen, einen Befehl auszuführen, die Ergebnisse in einem -Recordset--Objekt abzurufen und innerhalb des -Recordset-zu navigieren. Dieser Abschnitt konzentriert sich auf den nächsten grundlegenden ADO-Vorgang: Bearbeiten von Daten.

In diesem Abschnitt wird weiterhin das in Untersuchen von Dateneingeführte Beispiel Recordset- verwendet, jedoch mit einer wichtigen Änderung. Der folgende Code wird verwendet, um das Recordset-zu öffnen:

'BeginEditIntro  
    Dim strSQL As String  
    Dim objRs1 As ADODB.Recordset  
  
    strSQL = "SELECT * FROM Shippers"  
  
    Set objRs1 = New ADODB.Recordset  
  
    objRs1.Open strSQL, GetNewConnection, adOpenStatic, _  
                adLockBatchOptimistic, adCmdText  
  
    ' Disconnect the Recordset from the Connection object.  
    Set objRs1.ActiveConnection = Nothing  
'EndEditIntro  

Die wichtige Änderung des Codes umfasst das Festlegen der CursorLocation--Eigenschaft des Connection-Objekts auf adUseClient- in der GetNewConnection--Funktion (im nächsten Beispiel dargestellt), was die Verwendung eines Clientcursors angibt. Weitere Informationen zu den Unterschieden zwischen clientseitigen und serverseitigen Cursorn finden Sie unter Grundlegendes zu Cursorn und Sperren.

Die CursorLocation-Eigenschaft mit der adUseClient Einstellung verschiebt die Position des Cursors von der Datenquelle (in diesem Fall dem SQL Server) zur Position des Client-Codes (die Desktoparbeitsstation). Diese Einstellung veranlasst ADO, die Client Cursor Engine für OLE DB auf dem Client aufzurufen, um den Cursor zu verwalten und zu erstellen.

Möglicherweise haben Sie auch bemerkt, dass der LockType Parameter der Open-Methode in adLockBatchOptimisticgeändert wurde. Dadurch wird der Cursor im Batchmodus geöffnet. (Der Anbieter speichert mehrere Änderungen zwischen und schreibt sie nur dann in die zugrunde liegende Datenquelle, wenn Sie die UpdateBatch--Methode aufrufen.) Änderungen, die an dem Recordset- vorgenommen wurden, werden erst in der Datenbank aktualisiert, wenn die UpdateBatch--Methode aufgerufen wird.

Schließlich verwendet der Code in diesem Abschnitt eine geänderte Version der GetNewConnection-Funktion. Diese Version der Funktion gibt nun einen clientseitigen Cursor zurück. Die Funktion sieht wie folgt aus:

'BeginNewConnection  
Public Function GetNewConnection() As ADODB.Connection  
    On Error GoTo ErrHandler:  
  
    Dim objConn As New ADODB.Connection  
    Dim strConnStr As String  
  
    strConnStr = "Provider='SQLOLEDB';Initial Catalog='Northwind';" & _  
                 "Data Source='MySqlServer';Integrated Security='SSPI';"  
  
    objConn.ConnectionString = strConnStr  
    objConn.CursorLocation = adUseClient  
    objConn.Open  
  
    Set GetNewConnection = objConn  
  
    Exit Function  
  
ErrHandler:  
    Set objConn = Nothing  
    Set GetNewConnection = Nothing  
  
    If Err <> 0 Then  
        MsgBox Err.Source & "-->" & Err.Description, , "Error"  
    End If  
End Function  
'EndNewConnection  

Dieser Abschnitt enthält die folgenden Themen.