Partilhar via


Visão geral do Microsoft Cursor Service para OLE DB

O Microsoft Cursor Service para OLE DB complementa as funções de suporte do cursor de provedores de dados. Como resultado, o usuário pode perceber a funcionalidade relativamente uniforme de todos os provedores de dados.

O Cursor Service disponibiliza propriedades dinâmicas e aprimora o comportamento de determinados métodos. Por exemplo, a propriedade dinâmica Optimize permite a criação de índices temporários para facilitar algumas operações, como o método Find.

O Cursor Service habilita o suporte para a atualização em lote em todos os casos. Ele também simula tipos de cursor com mais capacidade, como cursores dinâmicos, quando um provedor de dados só pode fornecer cursores com menos capacidade, como cursores estáticos.

Palavra-chave

Para invocar esse componente de serviço, defina a propriedade CursorLocation do objeto Recordset ou Connection como adUseClient.

connection.CursorLocation=adUseClient
recordset.CursorLocation=adUseClient

Propriedades Dinâmicas

Quando o Cursor Service para OLE DB é invocado, as propriedades dinâmicas a seguir são adicionadas à coleção Properties do objeto Recordset. A lista completa de propriedades dinâmicas de objeto Connection e Recordset está listada no Índice de propriedade dinâmica do ADO. Os nomes de propriedade OLE DB associados, quando apropriado, são incluídos entre parênteses após o nome da propriedade ADO.

As alterações em algumas propriedades dinâmicas não ficam visíveis para a fonte de dados subjacente após a invocação do Cursor Service. Por exemplo, a configuração da propriedade Command Timeout em um Recordset não ficará visível para o provedor de dados subjacente.


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).

Se o aplicativo exigir o Cursor Service, mas você precisar definir propriedades dinâmicas no provedor subjacente, defina as propriedades antes de invocá-lo. As configurações de propriedade do objeto Command sempre são passadas para o provedor de dados subjacente, independentemente do local do cursor. Portanto, você também pode usar um objeto de comando para definir as propriedades a qualquer momento.

Observação

Não há suporte à propriedade dinâmica DBPROP_SERVERDATAONINSERT pelo serviço de cursor, mesmo que tenha suporte do provedor de dados subjacente.

Nome da propriedade Descrição
Auto Recalc (DBPROP_ADC_AUTORECALC) Para conjuntos de registros criados com o Data Shaping Service, esse valor indica com que frequência as colunas calculadas e agregadas são calculadas. O padrão (value=1) é recalcular sempre que o Data Shaping Service determina que os valores foram alterados. Se o valor for 0, as colunas calculadas ou agregadas serão calculadas somente quando a hierarquia for criada inicialmente.
Tamanho do lote (DBPROP_ADC_BATCHSIZE) Indica o número de instruções de atualização que podem ser enviadas em lote antes de serem enviadas ao armazenamento de dados. Quanto mais instruções em um lote, menos viagens de ida e volta ao armazenamento de dados.
Cache Child Rows (DBPROP_ADC_CACHECHILDROWS) Para conjuntos de registros criados com o Data Shaping Service, esse valor indica se os conjuntos de registros filho são armazenados em um cache para uso posterior.
Cursor Engine Version (DBPROP_ADC_CEVER) Indica a versão do Cursor Service que está sendo usada.
Maintain Change Status (DBPROP_ADC_MAINTAINCHANGESTATUS) Indica o texto do comando usado para ressincronizar uma ou mais linhas em uma junção de várias tabelas.
Otimizar Indica se um índice deve ser criado ou não. Quando definido como True, autoriza a criação temporária de índices para melhorar a execução de determinadas operações.
Reformular o nome Indica o nome do Recordset. Pode ser referenciado dentro dos comandos de formatação de dados atuais ou subsequentes.
Ressincronizar o comando Indica uma cadeia de caracteres de comando personalizada usada pelo método Resync quando a propriedade Unique Table está em vigor.
Catálogo exclusivo Indica o nome do banco de dados que contém a tabela referenciada na propriedade Unique Table.
Esquema exclusivo Indica o nome do proprietário da tabela referenciada na propriedade Unique Table.
Tabela única Indica o nome de uma tabela em um Recordset criado a partir de várias tabelas que podem ser modificadas por inserções, atualizações ou exclusões.
Update Criteria (DBPROP_ADC_UPDATECRITERIA) Indica quais campos na cláusula WHERE são usados para lidar com colisões que ocorrem durante uma atualização.
Update Resync (DBPROP_ADC_UPDATERESYNC) Indica se o método Resync é invocado implicitamente após o método UpdateBatch (e seu comportamento) quando a propriedade Unique Table está em vigor.

Você também pode definir ou recuperar uma propriedade dinâmica especificando seu nome como o índice para a coleção Properties. Por exemplo, obtenha e imprima o valor atual da propriedade dinâmica Optimize e defina um novo valor da seguinte maneira:

Debug.Print rs.Properties("Optimize")
rs.Properties("Optimize") = True

Comportamento interno da propriedade

O Cursor Service para OLE DB também afeta o comportamento de determinadas propriedades internas.

Nome da propriedade Descrição
CursorType Complementa os tipos de cursores disponíveis para um Recordset.
LockType Complementa os tipos de bloqueios disponíveis para um Recordset. Habilita atualizações em lote.
Sort Especifica um ou mais nomes de campos pelos quais o Recordset é classificado e se cada campo é classificado em ordem crescente ou decrescente.

Comportamento do método

O Cursor Service para OLE DB habilita ou afeta o comportamento do método Append do objeto Field; e os métodos Open, Resync, UpdateBatch e Save do objeto Recordset.