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