Compartir a través de


Edición de datos

Hemos explicado cómo usar ADO para conectarse a un origen de datos, ejecutar un comando, obtener los resultados en un objeto Recordset y navegar dentro del objeto Recordset. Esta sección se centra en la siguiente operación fundamental de ADO: editar datos.

En esta sección se sigue utilizando el objeto Recordset de ejemplo introducido en Examinar datos, con un cambio importante. El código siguiente se usa para abrir el objeto 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  

El cambio importante en el código implica establecer la propiedad CursorLocation del objeto Connection igual a adUseClient en la función GetNewConnection (que se muestra en el ejemplo siguiente), que indica el uso de un cursor de cliente. Para obtener más información sobre las diferencias entre los cursores del lado cliente y del lado servidor, consulte Descripción de los cursores y bloqueos.

El valor adUseClient de la propiedad CursorLocation mueve la ubicación del cursor desde el origen de datos (SQL Server, en este caso) a la ubicación del código de cliente (la estación de trabajo de escritorio). Esta configuración obliga a ADO a invocar el motor de cursores de cliente para OLE DB en el cliente con el fin de crear y administrar el cursor.

Es posible que también haya observado que el parámetro LockType del método Open ha cambiado a adLockBatchOptimistic. Se abre el cursor en modo por lotes. (El proveedor almacena en caché varios cambios y los escribe en el origen de datos subyacente solo cuando se llama al método UpdateBatch). Los cambios realizados en el objeto Recordset no se actualizarán en la base de datos hasta que se llame al método UpdateBatch.

Por último, el código de esta sección usa una versión modificada de la función GetNewConnection. Esta versión de la función ahora devuelve un cursor del lado cliente. La función tiene este aspecto:

'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  

Esta sección contiene los temas siguientes.