A criação de um consumidor sem utilizar um assistente

O exemplo a seguir pressupõe que você está adicionando suporte ao consumidor do OLE DB para um projeto existente do ATL. Se você deseja adicionar o 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 Wizard:

  • 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 que vincula as colunas para as variáveis locais. Neste exemplo, CMyTableNameAccessor é a classe de registro do 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 na 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 que tipo de conjunto de linhas e de assessor para usar e criar uma instância de um conjunto de linhas usando CCommand ou CTable:

    CDataSource ds;
    CSession ss;
    class CMyTableName : public CCommand<CAccessor<CMyTableNameAccessor> >
    
  • Chame CoInitialize ao inicializar com. Isso geralmente é chamado no código principal. For example:

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

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

    hr = ds.Open();
    hr = ss.Open(ds);
    hr = rs.Open();            // (Open also executes the command)
    
  • Opcionalmente, conjunto de linhas definir propriedades usando CDBPropSet::AddProperty e passá-los como um parâmetro para rs.Open. Para obter 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 é 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, convém chamar ReleaseCommand após Fechar. O exemplo de código em CCommand::Close mostra como chamar Fechar e ReleaseCommand.

  • Chame CoUnInitialize para cancelar a inicialização de COM. Isso geralmente é chamado no código principal.

    CoUninitialize();
    

Consulte também

Referência

A criação de um consumidor de OLE DB