Partilhar via


Cursores do OLE DB (SQL Server Compact)

O MicrosoftSQL Server Compact 4.0 dá suporte a tipos de cursores de tabela base, somente avanço e roláveis. Quando qualquer um desses cursores é usado, o cliente pode ter apenas uma linha aberta.

Cursor de tabela base

O cursor de tabela base é o mais rápido dos cursores com suporte, e o único que interage diretamente com o mecanismo de armazenamento. Esse cursor dá suporte a atualizações, indicadores e índices, bem como aos métodos Seek e SetRange de IRowsetIndex. Como opção, o cursor de tabela base dá suporte ao modo de atualização atrasada exibindo a interface IRowsetUpdate quando o cliente passa DBPROP_IRowsetUpdate como TRUE. Esse cursor possui associação dinâmica; ambas as propriedades DBPROP_OTHERINSERT e DBPROP_OTHERUPDATEDELETE são TRUE.

Os cursores de tabela base podem ser abertos somente com IOpenRowset::OpenRowset. O uso de "SELECT * FROM table" gera um cursor somente avanço ou rolável do processador de consultas, e não um cursor de tabela base. Somente os cursores de tabela base dão suporte a atualizações.

Cursor de somente avanço

Embora o cursor somente leitura de somente avanço seja o mais rápido do processador de consultas e o segundo mais rápido de uma forma geral, é o que oferece menos funcionalidades. Ele não tem suporte para indicadores ou atualizações.

Cursor rolável

O cursor somente leitura rolável é o mais funcional do processador de consultas. O conjunto de resultados desse cursor é armazenado em cache. Isso fornece reinicializações rápidas do cursor, mas o faz utilizar mais recursos, principalmente para consultas com conjuntos de resultados extensos. Como os resultados são armazenados em cache, as alterações nas tabelas base subjacentes para uma consulta não são refletidas nos resultados da consulta, a menos que ela seja executada novamente.

Definições de propriedades necessárias

A tabela a seguir mostra as definições de propriedades necessárias para cada tipo de cursor.

Definição de propriedade

Tabela base

Somente avanço

Rolável

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