Compartilhar via


Criando um consumidor sem usar um assistente

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

Para adicionar o suporte de consumidor OLEDB sem usar o ATL OLE DB consumidor Assistente:

  • No arquivo de 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 sequência das operações a seguir:

  • Crie uma classe de registro de usuário que vincula colunas para as variáveis locais.Neste exemplo, CMyTableNameAccessor é a classe de registro de usuário (consulte Registros de usuário).Essa classe contém o MAP de coluna e o MAP de parâmetro.Declarar um membro de dados em que a classe de registro do usuário para cada campo que você especificar no MAP de coluna; para cada um desses membros de dados, também declarar um membro de dados de status e um membro de dados de comprimento.Para obter mais informações, consulte Campo status dados Members in acessadores gerado pelo Assistente.

    Observação:

    Se você escrever seu próprio consumidor, as variáveis de dados devem vir antes das variáveis de status e 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, em seguida, criar uma instância de um conjunto de linhas usando CCommand or CTable:

    CDataSource ds;
    CSession ss;
    class CMyTableName : public CCommand<CAccessor<CMyTableNameAccessor> >
    
  • De telefonarEm coInitialize ao inicializar COM.Isso geralmente é chamado no código principal.Por exemplo:

    HRESULT hr = CoInitialize(NULL);
    
  • De telefonarCDataSource::em aberto ou uma de suas variações.

  • em em aberto uma conexão com a fonte de dados, em em aberto a sessão e abra 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, defina sistema autônomo propriedades do conjunto de linhas utilizando CDBPropSet::AddProperty e passá-los sistema autônomo um parâmetro para rs.Open. Para obter um exemplo de como fazer isso, consulte GetRowsetProperties em Consumidor métodos gerados pelo Assistente.

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

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

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

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

  • De telefonarCoUnInitialize para inicializar o COM.Isso geralmente é chamado no código principal.

    CoUninitialize();
    

Consulte também

Referência

Criação de um consumidor de BD OLE DB