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.