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 d’un objet Recordset et naviguer dans l’objet Recordset. Cette section se concentre sur une opération ADO fondamentale : la modification des données.
Cette section continue d’utiliser l’exemple de Recordset introduit dans Examen des données, avec une modification importante. Le code suivant est utilisé pour ouvrir l’objet Recordset :
'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 à 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 Présentation des curseurs et des verrous.
Le paramètre adUseClient de la propriété CursorLocation déplace l’emplacement du curseur de la source de données (le 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 est passé à adLockBatchOptimistic. Cela permet d’ouvrir le curseur 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 à l’objet Recordset 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 maintenant un curseur côté client. Cette fonction présente l’aspect suivant :
'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 :