Introducción al servicio de cursores de Microsoft para OLE DB
El servicio de cursores de Microsoft para OLE DB complementa las funciones de compatibilidad del cursor de los proveedores de datos. Como resultado, el usuario percibe una funcionalidad relativamente uniforme de todos los proveedores de datos.
El servicio cursor pone a disposición las propiedades dinámicas y mejora el comportamiento de determinados métodos. Por ejemplo, la propiedad dinámica Optimize permite crear índices temporales para facilitar determinadas operaciones, como el método Find.
El servicio cursor habilita el soporte para la actualización por lotes en todos los casos. También simula tipos de cursor más capaces, como cursores dinámicos, cuando 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 del. La lista completa de las 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 la propiedad de ADO.
Los cambios en algunas propiedades dinámicas no son visibles para el origen de datos subyacente después de invocar el servicio de cursores. Por ejemplo, establecer la propiedad tiempo de espera del comando de en un recordset de 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=MyUserID;" & _
"Password=<password>;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 de comando siempre se pasa al proveedor de datos subyacente independientemente de la ubicación del cursor. Por lo tanto, también puede usar un objeto de comando para establecer las propiedades en cualquier momento.
Nota
El servicio de cursor no admite la propiedad dinámica DBPROP_SERVERDATAONINSERT, aunque sea compatible con el proveedor de datos subyacente.
Nombre de propiedad | Descripción |
---|---|
Volver a calcular automáticamente (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. El valor predeterminado (value=1) es recalcular 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 compila inicialmente la jerarquía. |
Tamaño del lote (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 declaraciones haya en un lote, menos viajes de ida y vuelta al almacén de datos. |
Almacenar en caché filas secundarias (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. |
Versión del motor de cursor (DBPROP_ADC_CEVER) | Indica la versión del servicio de cursor que se está usando. |
Mantener el estado de cambio (DBPROP_ADC_MAINTAINCHANGESTATUS) | Indica el texto del comando usado para resincronizar una o varias filas de una combinación de varias tablas. |
Optimizar | Indica si se debe crear un índice. Cuando se establece en True, autoriza la creación temporal de índices para mejorar la ejecución de determinadas operaciones. |
Modificar Nombre | Indica el nombre del Recordset . Se puede hacer referencia dentro de los comandos actuales o posteriores de modelado de datos. |
Comando de resincronización | Indica una cadena de comandos personalizada que utiliza el método Resync cuando la propiedad tabla única está en vigor. |
Catálogo Único | Indica el nombre de la base de datos que contiene la tabla referenciada 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 única tabla en un objeto Recordset de creado a partir de varias tablas que se pueden modificar mediante inserciones, actualizaciones o eliminaciones. |
Criterios de actualización (DBPROP_ADC_UPDATECRITERIA) | Indica qué campos de cláusula WHERE se usan para controlar las colisiones que se producen durante una actualización. |
Actualizar Resync (DBPROP_ADC_UPDATERESYNC) | Indica si el método Resync se invoca implícitamente (y su comportamiento) después del método UpdateBatch, cuando la propiedad Unique Table está en efecto. |
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 propiedad incorporada
El servicio de cursores para OLE DB también afecta al comportamiento de determinadas propiedades integradas.
Nombre de propiedad | Descripción |
---|---|
tipoDeCursor | Complementa los tipos de cursores disponibles para un objeto Recordset de . |
tipo de cerradura | Complementa los tipos de bloqueos disponibles para un Recordset. Habilita las actualizaciones por lotes. |
ordenar | Especifica uno o varios nombres de campo en los que se ordena el Recordset y si cada campo está ordenado en orden ascendente o descendente. |
Comportamiento del método
El servicio de cursores para OLE DB habilita o afecta el comportamiento del método Append del objeto Field; y los métodos Open, Resync, UpdateBatchy Save del objeto Recordset.