Partilhar via


Criando um consumidor sem usar um assistente

O exemplo a seguir pressupõe que você está adicionando suporte ao consumidor do OLE DB para um projeto ATL existente.Se você deseja adicionar suporte ao consumidor do OLE DB para um aplicativo MFC, você deve executar o Assistente de aplicativo do MFC, que cria todo o suporte necessário e invoca as rotinas MFC necessárias para executar o aplicativo.

Para adicionar suporte ao consumidor do OLE DB sem usar a ATL OLE DB consumidor Assistente:

  • No arquivo stdafx. h, acrescente o seguinte #include instruções:

    #include <atlbase.h>
    #include <atldbcli.h>
    #include <atldbsch.h> // if you are using schema templates
    

Programaticamente, um consumidor normalmente realiza a seqüência de operações a seguir:

  • Crie uma classe de registro de usuário vincula colunas variáveis locais.Neste exemplo, CMyTableNameAccessor é a classe de registro de usuário (consulte Registros de usuário).Essa classe contém o mapa de coluna e o mapa de parâmetro.Declarar um membro de dados da classe de registro de usuário para cada campo que você especificar no seu mapa de coluna; para cada um desses membros de dados, também declare um membro de dados de status e um membro de dados de comprimento.Para obter mais informações, consulte Membros de dados do campo Status nos acessadores de Wizard-Generated.

    ObservaçãoObservação

    Se você escrever seu próprio consumidor, as variáveis de dados devem vir antes das variáveis de status e de comprimento.

  • Criar uma instância de uma fonte de dados e uma sessão.Decidir o tipo de acessador e conjunto de linhas para usar e instanciar um conjunto de linhas usando CCommand ou CTable:

    CDataSource ds;
    CSession ss;
    class CMyTableName : public CCommand<CAccessor<CMyTableNameAccessor> >
    
  • Chamar CoInitialize ao inicializar com.Isso normalmente é chamado no código principal.Por exemplo:

    HRESULT hr = CoInitialize(NULL);
    
  • Chamar CDataSource::Open ou uma de suas variações.

  • Abrir uma conexão com a fonte de dados, abra a sessão e abrir e inicializar o conjunto de linhas (e se um comando também executá-la):

    hr = ds.Open();
    hr = ss.Open(ds);
    hr = rs.Open();            // (Open also executes the command)
    
  • Opcionalmente, o conjunto de linhas definir propriedades usando CDBPropSet::AddProperty e passá-las como um parâmetro para rs.Open.Um exemplo de como isso é feito, consulte GetRowsetProperties na Métodos de Consumer Wizard-Generated.

  • Agora você pode usar o conjunto de linhas para recuperar/manipular os dados.

  • Quando seu aplicativo for concluído, feche a conexão, a sessão e o conjunto de linhas:

    rs.Close();
    ss.Close();
    ds.Close();
    

    Se você estiver usando um comando, você talvez queira chamar ReleaseCommand depois de Fechar.O exemplo de código em CCommand::Close mostra como chamar Fechar e ReleaseCommand.

  • Chamar CoUnInitialize para inicializar COM.Isso normalmente é chamado no código principal.

    CoUninitialize();
    

Consulte também

Referência

Criando um consumidor de OLE DB