Cursores OLE DB (SQL Server Compact)
Microsoft SQL Server Compact 4.0 admite los tipos de cursores de tabla base, de solo avance y de desplazamiento. Cuando se utiliza cualquiera de estos cursores admitidos, el cliente solo 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 pertenencia dinámica; ambas propiedades DBPROP_OTHERINSERT y DBPROP_OTHERUPDATEDELETE se establecen en el valor TRUE.
Los cursores de tabla base solo se pueden abrir mediante IOpenRowset::OpenRowset. Si se utiliza "SELECT * FROM tabla", se obtiene un cursor de procesador de consultas, de solo avance o de desplazamiento, y no un cursor de tabla base. Únicamente los cursores de tabla base admiten actualizaciones.
Cursor de solo avance
Aunque el cursor de solo avance y de solo 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 solo 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 |
Solo 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 |