Share via


Cursores OLE DB (SQL Server Compact)

Microsoft SQL Server Compact 3.5 admite los tipos de cursores de tabla base, de sólo avance y de desplazamiento. Cuando se utiliza cualquiera de estos cursores admitidos, el cliente sólo puede tener abierta una fila.

Cursor de tabla base

El cursor de tabla base es el más rápido y el único que interactúa directamente con el motor de almacenamiento. Este cursor admite actualizaciones, marcadores e índices, así como los métodos Seek y SetRange de IRowsetIndex. El cursor de tabla base también admite el modo de actualización retardada mostrando la interfaz IRowsetUpdate cuando el cliente pasa DBPROP_IRowsetUpdate como TRUE. Este cursor tiene miembros dinámicos; ambas propiedades DBPROP_OTHERINSERT y DBPROP_OTHERUPDATEDELETE se establecen en el valor TRUE.

Los cursores de tabla base sólo se pueden abrir mediante IOpenRowset::OpenRowset. Si se utiliza "SELECT * FROM tabla", se obtiene un cursor de procesador de consultas, de sólo avance o de desplazamiento, y no un cursor de tabla base. Únicamente los cursores de tabla base admiten actualizaciones.

Cursor de sólo avance

Aunque el cursor de sólo avance y de sólo lectura es el cursor procesador de consultas más rápido y el segundo más rápido en general, proporciona la menor funcionalidad. No admite marcadores o actualizaciones.

Cursor de desplazamiento

El cursor de desplazamiento de sólo lectura es el cursor procesador de consultas más funcional. El conjunto de resultados de este cursor se almacena en la memoria caché. Esto permite reiniciar los cursores rápidamente pero se requieren más recursos, sobre todo en las consultas con conjuntos de resultados de gran tamaño. Puesto que los resultados se almacenan en la memoria caché, los cambios realizados en las tablas base subyacentes para una consulta no se reflejan en los resultados de la consulta a menos que ésta se vuelva a ejecutar.

Configuración de propiedades necesarias

En la siguiente tabla se muestra la configuración de propiedades necesarias para cada tipo de cursor.

Configuración de propiedad Tabla base Sólo avance De desplazamiento

DBPROP_BOOKMARKS

VARIANT_TRUE

VARIANT_FALSE

VARIANT_TRUE

DBPROP_OWNUPDATEDDELETE

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_OWNINSERT

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_OTHERUPDATEDELETE

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_OTHERINSERT

VARIANT_TRUE

VARIANT_FALSE

VARIANT_FALSE

DBPROP_CANFETCHBACKWARDS

VARIANT_TRUE

VARIANT_FALSE

VARIANT_TRUE

DBPROP_QUICKRESTART

VARIANT_TRUE

VARIANT_FALSE

VARIANT_TRUE