ODBC: Llamar directamente a funciones de la API de ODBC

Las clases de base de datos proporcionan una interfaz más sencilla a un origen de datos que ODBC. Como resultado, las clases no encapsulan todas las API de ODBC. Para cualquier funcionalidad que se encuentre fuera de las capacidades de las clases, debe llamar directamente a las funciones de la API de ODBC. Por ejemplo, debe llamar directamente a las funciones de catálogo ODBC (::SQLColumns, ::SQLProcedures, ::SQLTables y otras).

Nota:

Mediante las clases ODBC de MFC, como se describe en este tema, o las clases DAO de MFC se puede tener acceso a los orígenes de datos ODBC.

Para llamar directamente a una función de la API de ODBC, debe seguir los mismos pasos que daría si realizara las llamadas sin el marco. Estos pasos son:

  • Asigne almacenamiento para los resultados que devuelva la llamada.

  • Pase un identificador HDBC o HSTMT de ODBC, en función de la firma de parámetro de la función. Use la macro AFXGetHENV para recuperar el identificador ODBC.

    Las variables miembro CDatabase::m_hdbc y CRecordset::m_hstmt están disponibles para que no sea necesario asignarlas e inicializarlas usted mismo.

  • Quizás llame a funciones ODBC adicionales para preparar o realizar un seguimiento de la llamada principal.

  • Desasigne el almacenamiento cuando termine.

Para obtener más información acerca de estos pasos, vea la Referencia del programador de OLE DB.

Además de estos pasos, debe seguir pasos adicionales para comprobar los valores devueltos de función, asegurarse de que el programa no espera a que finalice una llamada asincrónica, etc. Puede simplificar estos últimos pasos mediante las macros AFX_SQL_ASYNC y AFX_SQL_SYNC. Para obtener más información, consulte Macros y global de MFC.

Consulte también

Conceptos básicos de ODBC