ODBC: Llamar directamente a funciones de la API de ODBC

Actualización: noviembre 2007

Las clases de base de datos proporcionan una interfaz más simple con un origen de datos que la proporcionada por ODBC. Como resultado, las clases no encapsulan toda la API de ODBC. Para cualquier funcionalidad que no esté incluida en las posibilidades de las clases MFC, se debe llamar a las funciones de la API de ODBC directamente. Por ejemplo, se debe llamar a las funciones de catálogo de ODBC (::SQLColumns, ::SQLProcedures, ::SQLTables y otras) directamente.

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 a una función de la API de ODBC directamente, se deben seguir los mismos pasos que se seguirían en el caso de realizar llamadas sin el marco de trabajo. Estos pasos son los siguientes:

  • Asignar almacenamiento para los resultados devueltos por la llamada.

  • Pasar un identificador ODBC HDBC o HSTMT, dependiendo de la firma de parámetro de la función. Utilizar la macro AFXGetHENV para recuperar el identificador de ODBC.

    Las variables miembro CDatabase::m_hdbc y CRecordset::m_hstmt están disponibles, por lo que no es necesario que las asigne e inicialice el usuario.

  • Se puede llamar a otras funciones ODBC para preparar o hacer un seguimiento de la llamada principal.

  • Desasignar cualquier espacio de almacenamiento asignado al terminar.

Para obtener más información sobre estos pasos, vea el SDK de Conectividad abierta de bases de datos (ODBC) en la documentación de MSDN.

Además de estos pasos, es necesario seguir otros pasos para comprobar los valores devueltos por la función, asegurarse de que el programa no está esperando una llamada asincrónica para terminar, etc. Estos últimos pasos se pueden simplificar utilizando las macros AFX_SQL_ASYNC y AFX_SQL_SYNC. Para obtener más información, vea Macros y funciones globales en la Referencia de MFC.

Vea también

Conceptos

Conceptos básicos de ODBC