Partilhar via


ODBC: chamando funções de API ODBC diretamente

As classes da base de dados fornecem uma interface mais simples para fonte de dados do que o ODBC. No resultado, as classes não encapsulam qualquer API ODBC. Para toda a funcionalidade que parada fora das capacidades de classes, você deve chamar funções de ODBC API diretamente. Por exemplo, você deve chamar as funções de catálogo ODBC (::SQLColumns, ::SQLProcedures, ::SQLTables, entre outros) diretamente.

Dica

As fontes de dados ODBC são acessíveis por meio das classes MFC ODBC, como descrito neste tópico, ou as classes de (DAO) do objeto de acesso a dados de MFC.

Para chamar diretamente uma função de API ODBC, você deve tomar as mesmas etapas que você levaria se você fazia as chamadas sem a estrutura. Etapas são:

  • Atribuir o armazenamento para todos os resultados da chamada retornar.

  • Passar um identificador de ODBC HDBC ou de HSTMT , dependendo da assinatura do parâmetro da função. Use a macro de AFXGetHENV para recuperar o identificador do ODBC.

    As variáveis CDatabase::m_hdbc e CRecordset::m_hstmt do membro estão disponíveis para que você não precisa alocar e inicializar esses você mesmo.

  • Talvez chamar funções adicionais de ODBC para preparar para continuar ou a chamada principal.

  • Desaloque o armazenamento quando você terminar.

Para obter mais informações sobre essas etapas, consulte ODBC (ODBC) na documentação do SDK do MSDN.

Além dessas etapas, você precisa executar etapas adicionais para os valores de retorno da função de verificação, o garante que o programa não está esperando um chamada assíncrona para ser concluída, e assim por diante. Você pode simplificar as últimas etapas usando as macros de AFX_SQL_ASYNC e de AFX_SQL_SYNC . Para obter mais informações, consulte Macros e Globaisna referência de MFC.

Consulte também

Conceitos

Noções básicas de ODBC