Modification des données
Nous avons expliqué comment utiliser ADO pour se connecter à une source de données, exécuter une commande, obtenir les résultats dans un objet Recordset et naviguer dans le jeu d’enregistrements . Cette section se concentre sur la prochaine opération ADO fondamentale : modification de données.
Cette section continue d’utiliser l’exemple Recordset introduit dans Examen des données, avec une modification importante. Le code suivant permet d’ouvrir le jeu d’enregistrements :
'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
La modification importante du code implique de définir la propriété CursorLocation de l’objet Connection égal à adUseClient dans la fonction GetNewConnection (illustrée dans l’exemple suivant), qui indique l’utilisation d’un curseur client. Pour plus d’informations sur les différences entre les curseurs côté client et côté serveur, consultez Understanding Cursors and Locks.
Le paramètre CursorLocation propriété adUseClient déplace l’emplacement du curseur de la source de données (sql Server, dans ce cas) vers l’emplacement du code client (station de travail de bureau). Ce paramètre force ADO à appeler le moteur de curseur client pour OLE DB sur le client afin de créer et de gérer le curseur.
Vous avez peut-être également remarqué que le paramètre LockType de la méthode Open a changé en adLockBatchOptimistic. Le curseur s’ouvre en mode batch. (Le fournisseur met en cache plusieurs modifications et les écrit dans la source de données sous-jacente uniquement lorsque vous appelez la méthode UpdateBatch.) Les modifications apportées au jeu d’enregistrements ne seront pas mises à jour dans la base de données tant que la méthode UpdateBatch n’est pas appelée.
Enfin, le code de cette section utilise une version modifiée de la fonction GetNewConnection. Cette version de la fonction retourne désormais un curseur côté client. La fonction ressemble à ceci :
'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
Cette section contient les rubriques suivantes.