Partager via


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 :