Partilhar via


Visão geral do Serviço de Cursor da Microsoft para OLE DB

O Serviço de Cursor da Microsoft para OLE DB complementa as funções de suporte do cursor de provedores de dados. Como resultado, o usuário percebe uma funcionalidade relativamente uniforme de todos os provedores de dados.

O Serviço de Cursor 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 determinadas operações, como o método Find.

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

Palavra-chave

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

connection.CursorLocation=adUseClient
recordset.CursorLocation=adUseClient

Propriedades dinâmicas

Quando o Serviço de Cursor para OLE DB é invocado, as propriedades dinâmicas a seguir são adicionadas à coleção propriedades do objeto do Recordset. A lista completa de propriedades dinâmicas do objeto de Conexão 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 são visíveis para a fonte de dados subjacente após a invocação do Serviço de Cursor. Por exemplo, definir a 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 Serviço de Cursor, mas você precisar definir propriedades dinâmicas no provedor subjacente, defina as propriedades antes de invocar o Serviço de Cursor. As configurações de propriedade do objeto Command são sempre 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.

Nota

A propriedade dinâmica DBPROP_SERVERDATAONINSERT não é suportada pelo serviço de cursor, mesmo que tenha suporte do provedor de dados subjacente.

Nome da propriedade Descrição
Recalc automático (DBPROP_ADC_AUTORECALC) Para conjuntos de registros criados com o Serviço de Formatação de Dados, esse valor indica com que frequência as colunas calculadas e agregadas são calculadas. O padrão (value=1) é recalcular sempre que o Serviço de Formatação de Dados 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 declarações em um lote, menos idas e voltas para o armazenamento de dados.
Armazenar em cache linhas filhas (DBPROP_ADC_CACHECHILDROWS) Para conjuntos de registros criados com o Serviço de Formatação de Dados, esse valor indica se os conjuntos de registros filho são armazenados em um cache para uso posterior.
Versão do mecanismo de cursor (DBPROP_ADC_CEVER) Indica a versão do Serviço de Cursor que está sendo usado.
Manter o status da alteração (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. Quando definido como True, autoriza a criação temporária de índices para melhorar a execução de determinadas operações.
remodelar o nome Indica o nome do conjunto de registros . Pode ser referenciado nos comandos atuais ou subsequentes de formatação de dados.
Comando de Ressincronizar Indica uma cadeia de caracteres de comando personalizada usada pelo método Resync quando a propriedade Unique Table estiver em vigor.
Catálogo Único Indica o nome do banco de dados que contém a tabela referenciada na propriedade Unique Table.
Esquema Único Indica o nome do proprietário da tabela referenciada na propriedade Unique Table.
Tabela Única Indica o nome de uma tabela em um conjunto de registros criada a partir de várias tabelas que podem ser modificadas por inserções, atualizações ou exclusões.
Critérios de Atualização (DBPROP_ADC_UPDATECRITERIA) Indica quais campos na cláusula WHERE são usados para lidar com colisões que ocorrem durante uma atualização.
Atualização Ressincronização (DBPROP_ADC_UPDATERESYNC) Indica se o método Resync é invocado implicitamente após o método UpdateBatch (e o seu comportamento) quando a propriedade Unique Table estiver em vigor.

Você também pode definir ou recuperar uma propriedade dinâmica especificando seu nome como o índice na coleção Propriedades. 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 de Propriedade Embutida

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

Nome da propriedade Descrição
TipoDeCursor Complementa os tipos de cursores que estão disponíveis para um conjunto de registros .
Tipo de Bloqueio Complementa os tipos de bloqueios disponíveis para um conjunto de registros . Habilita atualizações em lote.
classificar Especifica um ou mais nomes de campo em que o conjunto de registros é classificado e se cada campo é classificado em ordem crescente ou decrescente.

Comportamento do método

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