Acessadores e conjuntos de linhas
Para definir e recuperar dados, modelos OLE DB é usar 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 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 nesse 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 nesse acessador, quando você não souber a estrutura do banco de dados em tempo de design. CDynamicAccessorchamadas IColumnsInfo::GetColumnInfo para obter informações de coluna de banco de dados. Ele cria e gerencia um acessador e o buffer.
CDynamicParameterAccessor usar nesse acessador para lidar com tipos de comando desconhecido. Quando você prepara os comandos, CDynamicParameterAccessor pode obter informações de parâmetro da ICommandWithParameters interface, se o provedor oferece suporte 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 que você deseja se o provedor pode converter o tipo. Ele lida com os parâmetros de comando e de colunas de resultado.
A tabela a seguir resume o suporte a tipos de assessor OLE DB modelo.
Tipo do acessador |
Dynamic |
Manipula params |
Buffer |
Acessadores de vários |
---|---|---|---|---|
CAccessor |
No |
Yes |
User |
Yes |
CDynamicAccessor |
Yes |
No |
Modelos OLE DB |
No |
CDynamicParameterAccessor |
Yes |
Yes |
Modelos OLE DB |
No |
CDynamicStringAccessor[A,W] |
Yes |
No |
Modelos OLE DB |
No |
CManualAccessor |
Yes |
Yes |
User |
Yes |
Tipos de conjunto de linhas
Os modelos OLE DB suportam três tipos de conjuntos de linhas (consulte a figura anterior): única de conjuntos de linhas (implementada pelo CRowset), em massa de conjuntos de linhas (implementada pelo CBulkRowset) e conjuntos de linhas de matriz (implementada pelo CArrayRowset). Busca de conjuntos de linhas simples lidar com 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 da matriz.
A figura a seguir mostra os tipos de conjunto de linhas.
Classes de conjunto de linhas
Conjuntos de linhas do esquema não os dados de acesso nos dados de 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 do banco de dados não é conhecida em tempo de compilação e deve ser obtida em tempo de execução.