Compartilhar via


Acessadores e conjuntos de linhas

Para definir e recuperar dados, os modelos OLE DB usam um acessador e um conjunto de linhas pela classe de CAccessorRowset . Esta classe pode tratar vários acessadores de tipos diferentes.

Tipos de acessador

Todos os acessadores derivam de CAccessorBase. CAccessorBase fornece o parâmetro e a associação de coluna.

A figura a seguir mostra os tipos de acessador.

Classes de acessador

Tipos de acessadores

  • uso deCAccessoresse acessador quando você souber a estrutura de origem da base de dados em tempo de design. CAccessor associa estatisticamente um registro base de dados do, que contém o buffer, à fonte de dados.

  • uso deCDynamicAccessoresse acessador quando você não conhecer a estrutura do base de dados em tempo de design. CDynamicAccessor chama IColumnsInfo::GetColumnInfo para obter as informações de coluna de base de dados. Criar e gerenciar um acessador e o buffer.

  • o uso deCDynamicParameterAccessoresse acessador tratar comando desconhecido digita. Quando você prepara os comandos, CDynamicParameterAccessor pode obter informações de parâmetro da interface de ICommandWithParameters , se o provedor oferecer suporte a ICommandWithParameters.

  • CDynamicStringAccessor, CDynamicStringAccessorA, e uso de CDynamicStringAccessorWessas classes quando você não tenha nenhum conhecimento do esquema de base de dados. CDynamicStringAccessorA recupera dados como cadeias de caracteres ANSI; CDynamicStringAccessorW recupera dados como cadeias de caracteres Unicode.

  • CManualAccessor com essa classe, você pode usar qualquer os tipos de dados que você deseja se o provedor pode converter o tipo. Trata colunas de resultados e parâmetros do comando.

A tabela a seguir resume o suporte nos tipos de modelo do acessador OLE DB.

Tipo de acessador

Dynamic

Trata param

Buffer

Vários acessadores

CAccessor

Não

Sim

Usuário

Sim

CDynamicAccessor

Sim

Não

Modelos OLE DB

Não

CDynamicParameterAccessor

Sim

Sim

Modelos OLE DB

Não

CDynamicStringAccessor[A,W]

Sim

Não

Modelos OLE DB

Não

CManualAccessor

Sim

Sim

Usuário

Sim

Tipos de conjunto de linhas

Os tipos de suporte dos três modelos OLE DB dos conjuntos de linhas (consulte a figura precedente): escolha os conjuntos de linhas (implementados por CRowset), os conjuntos de linhas em massa (implementados por CBulkRowset), e os conjuntos de linhas de matriz (implementados por CArrayRowset). Escolha a busca dos conjuntos de linhas um único identificador de linha MoveNext quando é chamado. Os conjuntos de linhas em massa podem buscar a vários identificadores de linha. Os conjuntos de linhas da matriz são os conjuntos de linhas que podem ser acessados usando a sintaxe da matriz.

A figura a seguir mostra os tipos de conjunto de linhas.

Classes do conjunto de linhas

Gráfico de RowsetType

Conjuntos de linhas de esquema não acessa dados no repositório de dados acessa mas sim as informações sobre o armazenamento de dados, chamadas de metadados. Conjuntos de linhas de esquema são usados normalmente em situações em que a estrutura de base de dados não é conhecida em tempo de compilação e deve ser obtida em tempo de execução.

Consulte também

Conceitos

Modelos de consumidor de banco de dados OLE (C++)