Servicio de cursores de Microsoft para OLE DB (componente de servicio ADO)
Se aplica a: Access 2013, Office 2013
El Servicio de cursores para OLE DB de Microsoft complementa a las funciones de compatibilidad de cursor de los proveedores de datos. Como resultado, el usuario percibe una funcionalidad relativamente uniforme en todos los proveedores de datos.
El Servicio de cursores hace que las propiedades dinámicas estén disponibles y mejora el comportamiento de algunos métodos. Por ejemplo, la propiedad dinámica Optimize habilita la creación de índices temporales para facilitar algunas operaciones, como el método Find.
El Servicio de cursores habilita la compatibilidad con la actualización por lotes en todos los casos. También simula tipos de cursor más eficaces, como los cursores dinámicos, cuando un proveedor de datos sólo puede proporcionar cursores menos eficaces, como los estáticos.
Palabra clave
Para llamar a este componente de servicios, establezca la propiedad CursorLocation de los objetos Recordset o Connection en adUseClient.
connection.CursorLocation=adUseClientrecordset.CursorLocation=adUseClient
Propiedades dinámicas
Cuando se llama al 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 de los objetos Connection y Recordset se puede consultar en el Índice de propiedades dinámicas de ADO. Los nombres de las propiedades de OLE DB asociadas se incluyen, cuando resulta adecuado, entre paréntesis tras el nombre de la propiedad ADO.
Los cambios realizados en algunas propiedades dinámicas no son visibles para el origen de datos subyacente una vez que se ha llamado al Servicio de cursores. Por ejemplo, el establecimiento de la propiedad Command Time out en un objeto Recordset no será visible para el proveedor de datos subyacente.
...
Recordset1.CursorLocation = adUseClient 'invokes cursor service
Recordset1.Open "authors", _
"Provider=SQLOLEDB;Data Source=DBServer;User Id=usr;" & _
"Password=pwd;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 necesita el Servicio de cursores pero usted necesita establecer propiedades dinámicas en el proveedor subyacente, establezca las propiedades antes de llamar al Servicio de cursores. La configuración de la propiedad del objeto Command siempre pasa al proveedor de datos subyacente independientemente de la ubicación del cursor. Por lo tanto, se puede utilizar un objeto Command para establecer las propiedades en cualquier momento.
Nota:
La propiedad dinámica DBPROP_SERVERDATAONINSERT no es admitida por el Servicio de cursores, aun cuando sea admitida por el proveedor de datos subyacente.
Nombre de propiedad |
Descripción |
---|---|
Auto Recalc |
En los conjuntos de registros creados mediante el Servicio de forma de datos, este valor indica la frecuencia con que se calculan las columnas calculadas y de agregado. El valor predeterminado (=1) es volver a calcular siempre que el Servicio de forma de datos determina que los valores han cambiado. Si el valor es 0, las columnas calculadas o de agregado sólo se calculan cuando se elabora inicialmente la jerarquía. |
Batch Size |
Indica el número de instrucciones de actualización que se pueden reunir en lotes antes de enviarse al almacén de datos. Cuantas más instrucciones haya en un lote, menos viajes se necesitarán al almacén de datos. |
Cache Child Rows |
En los conjuntos de registros creados mediante el Servicio de forma de datos, este valor indica si los conjuntos de registros secundarios se han almacenado en una memoria caché para ser utilizados posteriormente. |
Cursor Engine Version |
Indica la versión del Servicio de cursores que se utiliza. |
Maintain Change Status |
Indica el texto del comando utilizado para volver a sincronizar una o más filas de una combinación de varias tablas. |
Indica si se debe crear un índice. Cuando está establecida en True, autoriza la creación temporal de índices para mejorar la ejecución de algunas operaciones. |
|
Indica el nombre del objeto Recordset. Se puede hacer referencia a ella en los comandos de forma de datos actuales o siguientes. |
|
Indica una cadena de comando utilizada por el método Resync cuando la propiedad Unique Table está activada. |
|
Indica el nombre de la base de datos que contiene la tabla a la que se hace referencia en la propiedad Unique Table. |
|
Indica el nombre del propietario de la tabla a la que se hace referencia en la propiedad Unique Table. |
|
Indica el nombre de la única tabla de un objeto Recordset creado a partir de varias tablas que se pueden modificar mediante inserciones, actualizaciones o eliminaciones. |
|
Update Criteria |
Indica qué campos de la cláusula WHERE se utilizan para controlar conflictos producidos durante una actualización. |
Update Resync(DBPROP_ADC_UPDATERESYNC) |
Indica si se llama al método Resync de forma implícita después de llamar al método UpdateBatch (y su comportamiento) cuando la propiedad Unique Table está activada. |
También es posible establecer o recuperar una propiedad dinámica al especificar su nombre como índice de 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 éste:
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 propiedad |
Descripción |
---|---|
Complementa a los tipos de cursores disponibles para un objeto Recordset. |
|
Complementa a los tipos de bloqueos disponibles para un objeto Recordset. Habilita las actualizaciones por lotes. |
|
Especifica uno o más nombres de campo por los que está ordenado el objeto Recordset y si cada campo está ordenado de forma ascendente o descendente. |
Comportamiento de los métodos
El Servicio de cursores para OLE DB habilita o afecta al comportamiento del método Append del objeto Field y a los métodos Open, Resync, UpdateBatch y Save del objeto Recordset.