Share via


Información general sobre el servicio de cursores de Microsoft para OLE DB

El Servicio de cursores de Microsoft para OLE DB complementa las funciones de compatibilidad de cursores de los proveedores de datos. Como resultado, el usuario percibe una funcionalidad relativamente uniforme de todos los proveedores de datos.

El servicio de cursores pone a disposición las propiedades dinámicas y mejora el comportamiento de algunos métodos. Por ejemplo, la propiedad dinámica Optimize permite la creación de índices temporales para facilitar algunas operaciones, como el método Find.

El servicio de cursores permite la actualización por lotes en todos los casos. También simula tipos de cursor más capaces, como cursores dinámicos, mientras que un proveedor de datos solo puede proporcionar cursores menos capaces, como cursores estáticos.

Palabra clave

Para invocar este componente de servicio, establezca la propiedad CursorLocation del objeto Recordset o Connection en adUseClient.

connection.CursorLocation=adUseClient
recordset.CursorLocation=adUseClient

Propiedades dinámicas

Cuando se invoca el Servicio de cursores para OLE DB, se agregan las siguientes propiedades dinámicas a la colección Properties del objeto Recordset. La lista completa de propiedades dinámicas del objeto Connection y Recordset se muestra en elÍndice de propiedades dinámicas de ADO. Los nombres de propiedad OLE DB asociados, si procede, se incluyen entre paréntesis después del nombre de propiedad de ADO.

Los cambios en algunas propiedades dinámicas no son visibles en el origen de datos subyacente después de invocar el servicio de cursores. Por ejemplo, establecer la propiedad Command Time out en un objeto Recordset no es visible en el proveedor de datos subyacente.


Recordset1.CursorLocation = adUseClient     'invokes cursor service
Recordset1.Open "authors", _
    "Provider=SQLOLEDB;Data Source=DBServer;User Id=MyUserID;" & _
    "Password=MyPassword;Initial Catalog=pubs;",,adCmdTable
Recordset1.Properties.Item("Command Time out") = 50
' 'Command Time out' property on DBServer is still default (30).

Si la aplicación requiere el servicio de cursores, pero debe establecer propiedades dinámicas en el proveedor subyacente, establezca las propiedades antes de invocar el servicio de cursores. La configuración de la propiedad del objeto Command siempre se pasa al proveedor de datos subyacente, independientemente de la ubicación del cursor. Por lo tanto, también puede usar un objeto Command para establecer las propiedades en cualquier momento.

Nota

El servicio de cursores no admite la propiedad dinámica DBPROP_SERVERDATAONINSERT, aunque sea el proveedor de datos subyacente la admita.

Nombre de la propiedad Descripción
Auto Recalc (DBPROP_ADC_AUTORECALC) En el caso de los conjuntos de registros creados con el servicio de modelado de datos, este valor indica la frecuencia con la que se calculan las columnas calculadas y agregadas. Si el valor es predeterminado (value=1), se recalculan cada vez que el servicio de modelado de datos determina que los valores han cambiado. Si el valor es 0, las columnas calculadas o agregadas solo se calculan cuando se crea la jerarquía inicialmente.
Batch Size (DBPROP_ADC_BATCHSIZE) Indica el número de instrucciones de actualización que se pueden procesar por lotes antes de enviarse al almacén de datos. Cuantas más instrucciones en un lote, menos ciclos de ida y vuelta al almacén de datos.
Cache Child Rows (DBPROP_ADC_CACHECHILDROWS) En el caso de los conjuntos de registros creados con el servicio de modelado de datos, este valor indica si los conjuntos de registros secundarios se almacenan en una memoria caché para su uso posterior.
Cursor Engine Version (DBPROP_ADC_CEVER) Indica la versión del servicio de cursores que se está usando.
Maintain Change Status (DBPROP_ADC_MAINTAINCHANGESTATUS) Indica el texto del comando usado para volver a sincronizar una o varias filas de una combinación de varias tablas.
Optimize (Optimizar) Indica si debe crearse un índice. Cuando se establece en True, autoriza la creación temporal de índices para mejorar la ejecución de algunas operaciones.
Nombre del cambio de forma Indica el nombre del objeto Recordset. Se le puede hacer referencia en los comandos de forma de datos actuales o posteriores.
Comando de resincronización Indica una cadena de comando personalizada que usa el método Resync cuando la propiedad Unique Table está en vigor.
Catálogo único Indica el nombre de la base de datos que contiene la tabla a la que se hace referencia en la propiedad Unique Table.
Esquema único Indica el nombre del propietario de la tabla a la que se hace referencia en la propiedad Unique Table.
Tabla única Indica el nombre de la tabla de un objeto Recordset creado a partir de varias tablas que se pueden modificar mediante inserciones, actualizaciones o eliminaciones.
Update Criteria (DBPROP_ADC_UPDATECRITERIA) Indica qué campos de la cláusula WHERE se usan para controlar los conflictos que se producen durante una actualización.
Update Resync (DBPROP_ADC_UPDATERESYNC) Indica si el método Resync se invoca implícitamente después del método UpdateBatch (y su comportamiento), cuando la propiedad Unique Table está en vigor.

También puede establecer o recuperar una propiedad dinámica especificando su nombre como índice en la colección Properties. Por ejemplo, obtenga e imprima el valor actual de la propiedad dinámica Optimize y, a continuación, establezca un nuevo valor, como se indica a continuación:

Debug.Print rs.Properties("Optimize")
rs.Properties("Optimize") = True

Comportamiento de las propiedades integradas

El servicio de cursores para OLE DB también afecta al comportamiento de algunas propiedades integradas.

Nombre de la propiedad Descripción
CursorType Complementa los tipos de cursores que están disponibles en un objeto Recordset.
LockType Complementa los tipos de bloqueos disponibles en un objeto Recordset. Habilita las actualizaciones por lotes.
Sort Especifica uno o varios nombres de campo en los que se ordena el objeto Recordset y si cada campo se ordena en orden ascendente o descendente.

Comportamiento de método

El servicio de cursores para OLE DB habilita o afecta al comportamiento del método Append del objeto Field; y los métodos Open, Resync, UpdateBatch y Save del objeto Recordset.