Serviço de cursor da Microsoft para OLE DB (Componente de serviços ADO)
Aplica-se ao: Access 2013, Office 2013
O Microsoft Cursor Service for OLE DB complementa as funções de suporte do cursor dos provedores de dados. Como resultado, o usuário percebe uma funcionalidade relativamente uniforme de todos os provedores de dados.
O Cursor Service disponibiliza propriedades dinâmicas e melhora 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 lotes em todos os casos. Além disso, ele simula tipos de cursores mais avançados, como os cursores dinâmicos, quando um provedor de dados pode oferecer suporte apenas a cursores com menos recursos, como os cursores estáticos.
Palavra-chave
Para invocar esse componente de serviço, defina a propriedade CursorLocation dos objetos Recordset ou Connection como adUseClient.
connection.CursorLocation=adUseClientrecordset.CursorLocation=adUseClient
Propriedades dinâmicas
Quando o Cursor Service para OLE DB é invocado, as propriedades dinâmicas listadas abaixo são adicionadas à coleção Properties do objeto Recordset. A lista completa de propriedades dinâmicas dos objetos Connection e Recordset é fornecida no Índice de Propriedades Dinâmicas do ADO. Os nomes das propriedades associadas do OLE DB, quando adequados, são incluídos entre parênteses após o nome da propriedade do ADO.
As alterações em algumas propriedades dinâmicas não são visíveis para a fonte de dados de base depois que o Cursor Service é invocado. Por exemplo, a definição da propriedade Command Time out de um Recordset não ficará visível para o provedor de dados de base.
...
Recordset1.CursorLocation = adUseClient 'invokes cursor service
Recordset1.Open "authors", _
"Provider=SQLOLEDB;Data Source=DBServer;User Id=usr;" & _
"Password=pwd;Initial Catalog=pubs;",,adCmdTable
Recordset1.Properties.Item("Command Time out") = 50
' 'Command Time out' property on DBServer is still default (30).
...
Se o seu aplicativo exige o Cursor Service, mas você precisa definir propriedades dinâmicas no provedor de base, defina as propriedades antes de chamar o Cursor Service. As definições de propriedades de objetos de comando sempre são passadas para o provedor de dados de base, independentemente do local do cursor. Portanto, você também pode usar um objeto de comando para definir as propriedades a qualquer momento.
Observação
O serviço de cursor não oferece suporte à propriedade dinâmica DBPROP_SERVERDATAONINSERT, mesmo que o provedor de dados de base ofereça esse suporte.
Nome da propriedade |
Descrição |
---|---|
Auto Recalc |
Nos conjuntos de registros criados com o Data Shaping Service, esse valor indica com que frequência as colunas calculadas e agregadas serão calculadas. O padrão (valor=1) é recalcular sempre que o Data Shaping Service determinar que os valores foram alterados. Se o valor for 0, as colunas calculadas ou agregadas serão calculadas somente durante a construção inicial da hierarquia. |
Batch Size |
Indica o número de instruções de atualização que podem ser colocadas em lote antes de serem enviadas para o repositório de dados. Quanto maior for o número de instruções em um lote, menos ciclos de armazenamento de dados serão necessários. |
Cache Child Rows |
Nos conjuntos de registros criados com o Data Shaping Service, este valor indica se os conjuntos de registros filhos serão armazenados em um cache para utilização posterior. |
Cursor Engine Version |
Indica a versão do Cursor Service que está sendo utilizada. |
Maintain Change Status |
Indica o texto do comando utilizado para sincronizar novamente uma ou mais linhas em uma junção de várias tabelas. |
Indica se um índice deverá ser criado. Se for definido como True, autorizará a criação temporária de índices para melhorar a execução de determinadas operações. |
|
Indica o nome do Recordset. Pode ser referenciado nos comandos atuais ou de data shaping subsequentes. |
|
Indica uma sequência de comandos personalizada utilizada pelo método Resync quando a propriedade Unique Table estiver em vigor. |
|
Indica o nome do banco de dados que contém a tabela referenciada na propriedade Unique Table. |
|
Indica o nome do proprietário da tabela referenciada na propriedade Unique Table. |
|
Indica o nome da tabela única criada em um Recordset a partir de várias tabelas que podem ter sido modificadas por inserções, atualizações ou exclusões. |
|
Update Criteria |
Indica quais campos da cláusula WHERE serão utilizados para lidar com colisões que ocorram durante uma atualização. |
Update Resync(DBPROP_ADC_UPDATERESYNC) |
Indica se o método Resync será invocado implicitamente após o método UpdateBatch (e seu comportamento) quando a propriedade Unique Table estiver em vigor. |
Você também pode definir ou recuperar uma propriedade dinâmica especificando o seu nome como índice da coleção Properties. Isso, por exemplo, recupera e imprime o valor atual da propriedade dinâmica Optimize e depois define um novo valor:
Debug.Print rs.Properties("Optimize")
rs.Properties("Optimize") = True
Comportamento de propriedades internas
O Cursor Service para OLE DB também afeta o comportamento de determinadas propriedades internas.
Nome da propriedade |
Descrição |
---|---|
Complementa os tipos de cursores que estão disponíveis para um Recordset. |
|
Complementa os tipos de bloqueios que estão disponíveis para um Recordset. Habilita atualizações em lote. |
|
Especifica um ou mais nomes de campos com base nos quais o Recordset será classificado e se cada campo será classificado em ordem crescente ou decrescente. |
Comportamento de métodos
O Cursor Service para OLE DB habilita ou afeta o comportamento do método Append do objeto Field; e dos métodos Open, Resync, UpdateBatch e Save do objeto Recordset.