Determinar que tipo de acessador uso
Você pode determinar os tipos de dados em um conjunto de linhas em time de compilar ou em time de execução.
Se você precisar determinar sistema autônomo tipos de dados em time de compilar, use um acessador estático (por exemplo, CAccessor). Você pode determinar os tipos de dados manualmente ou usando o ATL OLE DB consumidor assistente.
Se você precisar determinar os tipos de dados em time de execução, use um dinâmico (CDynamicAccessor ou seus filhos) ou o acessador manual (CManualAccessor). Nesses casos, você pode telefonar GetColumnInfo no conjunto de linhas para retornar informações de ligação de coluna, do qual você pode determinar tipos.
A tabela a seguir lista os tipos de acessadores fornecidos em modelos de consumidor.Cada acessador tem vantagens e desvantagens.Dependendo da situação, um tipo de acessador deve atender às suas necessidades.
Classe do acessador |
Vinculação |
Parâmetro |
Comment |
---|---|---|---|
CAccessor |
Criar um registro de usuário com COLUMN_ENTRY macros. As macros BIND um membro de dados desse registro a do acessador.Quando é criado o conjunto de linhas, colunas não podem ser desligadas. |
Sim, usando um PARAM_MAPentrada de macro .Parâmetros limite uma vez, não podem ser desligados. |
Acessador mais rápido por causa da pequena quantidade de código. |
CDynamicAccessor |
Automático. |
Não. |
Útil se você não souber o tipo de dados em um conjunto de linhas. |
CDynamicParameterAccessor |
Automático, mas pode ser substituído. |
Sim, se o provedor oferece suporte a ICommandWithParameters. Parâmetros limite automaticamente. |
Mais lenta do que CDynamicAccessor mas é útil para chamar procedimentos armazenados genéricos. |
CDynamicStringAccessor [A, W] |
Automático. |
Não. |
Recupera dados acessados do armazenamento de dados sistema autônomo dados de seqüência de caracteres. |
CManualAccessor |
Manual usando AddBindEntry. |
Manualmente usando AddParameterEntry. |
Muito rápido; parâmetros e colunas vinculados somente uma vez.Determine o tipo de dados para usar.(See DBVIEWERexemplo de para obter um exemplo.) Requer mais código que CDynamicAccessor ou CAccessor. É mais como chamar diretamente o banco de dados OLE DB. |
CXMLAccessor |
Automático. |
Não. |
Recupera dados acessados do armazenamento de dados sistema autônomo dados de seqüência de caracteres e formata dados marcados sistema autônomo XML. |