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 vários assessores de tipos diferentes.
Tipos de acessador
Todos os acessadores derivam de CAccessorBase.CAccessorBasefornece o parâmetro e ligação de coluna.
A figura a seguir mostra os tipos de acessador.
Classes de acessador
CAccessor usar este acessador quando você conhece a estrutura da fonte de banco de dados em tempo de design.CAccessorvincula estaticamente um registro de banco de dados que contém o buffer, a fonte de dados.
CDynamicAccessor usar este acessador quando você não souber a estrutura do banco de dados em tempo de design.CDynamicAccessorchamadas IColumnsInfo::GetColumnInfo para obter as informações de coluna do banco de dados.Cria e gerencia um acessador e o buffer.
CDynamicParameterAccessor usar este acessador para lidar com tipos de comando desconhecido.Quando você prepara os comandos CDynamicParameterAccessor pode obter informações de parâmetro do ICommandWithParameters interface, se o provedor oferece suporte a ICommandWithParameters.
CDynamicStringAccessor, CDynamicStringAccessorA, e CDynamicStringAccessorW usar essas classes quando você não possui conhecimento do esquema do banco de dados.CDynamicStringAccessorArecupera dados como cadeias de caracteres ANSI; CDynamicStringAccessorWrecupera dados como cadeias de caracteres Unicode.
CManualAccessor com essa classe, você pode usar quaisquer tipos de dados se o provedor pode converter o tipo.Ele lida com colunas de resultados e parâmetros de comando.
A tabela a seguir resume o suporte a tipos de assessor OLE DB modelo.
Tipo de acessador |
Dynamic |
Alças params |
Buffer |
Vários assessores |
---|---|---|---|---|
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
Modelos OLE DB suportam três tipos de conjuntos de linhas (veja a figura anterior): única de conjuntos de linhas (implementada pelo CRowset), em massa de conjuntos de linhas (implementada pelo CBulkRowset) e conjuntos de linhas da matriz (implementada pelo CArrayRowset).Conjuntos de linha única busca tratar uma única linha quando MoveNext é chamado.Conjuntos de linhas BULK 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 nos dados armazenar 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 de banco de dados não é conhecida em tempo de compilação e deve ser obtida em tempo de execução.