OOLE DB usuário registra

Para usar um acessador estático, o consumidor deve ter um registro de usuário. Registro do usuário é uma classe C++ que contém elementos de dados para o identificador de entrada ou saída. O Assistente de objeto ATL gera um registro de usuário para o consumidor. Você pode adicionar métodos ao registro do usuário para tarefas opcionais como manipulação de comandos.

O código a seguir mostra um registro de exemplo que manipula os comandos. No registro do usuário, BEGIN_OLUMN_MAP representa um conjunto de linhas de dados passado para o consumidor de um provedor. BEGIN_PARAM_MAP representa um conjunto de parâmetros de comando. Este exemplo usa uma CCommand classe para manipular os parâmetros de comando. Os membros de dados nas entradas de mapa representam deslocamentos em um Bloquear contíguo de memória para cada instância da classe. As macros COLUMN_ENTRY correspondem às macros PROVIDER_COLUMN_ENTRY no lado do provedor.

Para obter mais informações sobre o COLUMN_MAP e PARAM_MAP macros, consulte Macros de para OLE DB consumidor modelos.

classe CArtists
{
público:
/ / Elementos de dados
   CHAR m_szFirstName [20];
   CHAR m_szLastName [30];
   m_nAge curto;
 
/ / saída de mapa de ligação
BEGIN_COLUMN_MAP(CArtists)
   COLUMN_ENTRY (1, m_szFirstName)
   COLUMN_ENTRY (2, m_szLastName)
   COLUMN_ENTRY (3, m_nAge)
END_COLUMN_MAP()
 
/ / parâmetro vinculação mapa
BEGIN_PARAM_MAP(CArtists)
   COLUMN_ENTRY (1, m_nAge)
END_PARAM_MAP
}

O exemplo a seguir mostra o registro de usuário modificado para suporte Múltiplo acessadores no conjunto de linhas. Em vez de BEGIN_COLUMN_MAP e END_COLUMN_MAP, ele usa BEGIN_ACCESSOR_MAP e BEGIN_ACCESSOR para cada acessador. A macro BEGIN_ACCESSOR especifica o número de acessador (deslocamento de zero) e se o acessador é um autoaccessor. Autoaccessors chamada GetData para recuperar dados automaticamente em uma chamada para MoveNext. Não automático acessadores exigem que você explicitamente recuperar os dados. Use um acessador automático se você estiver vinculando a um campo de dados grandes (como uma imagem de bitmap) que você não poderá recuperar para cada registro.

classe CMultiArtists
{
público:
/ / Elementos de dados
   CHAR m_szFirstName [20];
   CHAR m_szLastName [30];
   m_nAge curto;
 
/ / saída de mapa de ligação
BEGIN_ACCESSOR_MAP (CMultiArtists, 2)
   BEGIN_ACCESSOR (0, true)
    COLUMN_ENTRY (1, m_szFirstName)
    COLUMN_ENTRY (2, m_szLastName)
   END_ACCESSOR()
   BEGIN_ACCESSOR (1, falso) / / não um acessador automático
    COLUMN_ENTRY (3, m_nAge)
   END_ACCESSOR()
END_ACCESSOR_MAP()
}

Voltar para a OLE DB consumidor modelo arquitetura

Index