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 de y navegar dentro del objeto Recordset de . Esta sección se centra en la siguiente operación fundamental de ADO: editar datos.
En esta sección se sigue usando el conjunto de registros de ejemplo introducido en Examinar Datos, con un cambio importante. El código siguiente se usa para abrir el 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, vea Descripción de los cursores y bloqueos.
El valor de CursorLocation propiedad adUseClient 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 cursor de cliente para OLE DB en el cliente para crear y administrar el cursor.
Es posible que también haya notado 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 Recordset no se actualizarán en la base de datos hasta que se llame al método updateBatch de.
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 devuelve ahora 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.