Acessadores e conjuntos de linhas
Para definir e recuperar dados, modelos OLE DB use um acessador e um conjunto de linhas por meio de CAccessorRowset classe.Essa classe pode manipular acessadores vários tipos diferentes.
Tipos de acessador
Todos os responsáveis pelo acesso derivam de CAccessorBase.CAccessorBase Fornece parâmetro e ligação de coluna.
A figura a seguir mostra os tipos de acessador.
Classes de acessador
CAccessor Use este acessador quando você já conhece a estrutura da fonte de banco de dados em time de design.CAccessor vincula estaticamente um registro de banco de dados que contém o buffer, a fonte de dados.
CDynamicAccessor Use este acessador quando você não souber a estrutura do banco de dados em time de design.CDynamicAccessor chamadas IColumnsInfo::GetColumnInfo para obter as informações de coluna do banco de dados.Ele cria e gerencia um acessador e o buffer.
CDynamicParameterAccessor Use este acessador para lidar com tipos de comando desconhecido.Quando você prepara os comandos, CDynamicParameterAccessor pode obter informações sobre parâmetro da ICommandWithParameters interface, se o provedor oferece suporte a ICommandWithParameters.
CDynamicStringAccessor, CDynamicStringAccessorA, and CDynamicStringAccessorW Use essas classes quando você não possui conhecimento do esquema de banco de dados.CDynamicStringAccessorA recupera dados sistema autônomo cadeias de caracteres ANSI; CDynamicStringAccessorW recupera dados sistema autônomo cadeias de caracteres Unicode.
CManualAccessor Com essa classe, você pode usar quaisquer tipos de dados que você deseja se o provedor pode converter o tipo.Ele trata as colunas de resultados e parâmetros de comando.
A tabela a seguir resume o suporte nos tipos de assessor OLE DB modelo.
Tipo de acessador |
Dynamic |
Manipula params |
Buffer |
Acessadores de vários |
---|---|---|---|---|
CAccessor |
Não |
Sim |
Usuário |
Sim |
CDynamicAccessor |
Sim |
Não |
Modelos de BD OLE DB |
Não |
CDynamicParameterAccessor |
Sim |
Sim |
Modelos de BD OLE DB |
Não |
CDynamicStringAccessor [A, W] |
Sim |
Não |
Modelos de BD OLE DB |
Não |
CManualAccessor |
Sim |
Sim |
Usuário |
Sim |
Tipos de conjunto de linhas
Os modelos OLE DB oferecem suporte a três tipos de conjuntos de linhas (veja a figura anterior): conjuntos de linha único (implementados por CRowset) em massa conjuntos de linhas (implementados por CBulkRowset) e conjuntos de linhas (implementados por de arrayCArrayRowset).Conjuntos de linha única busca tratar uma única linha quando MoveNext é chamado. Conjuntos de linhas em massa podem buscar vários identificadores de linha.Conjuntos de linhas da matriz são conjuntos de linhas que podem ser acessados usando a sintaxe de matriz.
A figura a seguir mostra os tipos de conjunto de linhas.
Classes de conjunto de linhas
Conjuntos de linhas do esquema não acessar dados no armazenamento de dados mas, em vez disso, acessar informações sobre o armazenamento de dados, chamada de metadados.Conjuntos de linhas do esquema são normalmente usados em situações em que a estrutura do banco de dados não for conhecida no time de compilar e deve ser obtida em time de execução.