ODBC:直接调用 ODBC API 函数

数据库类提供的到数据源的接口比 ODBC 提供的更为简单。 因此,这些类不封装全部的 ODBC API。 对于这些类的功能以外的任何功能,都必须直接调用 ODBC API 函数。 例如,您必须直接调用 ODBC 目录函数(::SQLColumns::SQLProcedures::SQLTables 和其他一些函数)。

备注

通过 MFC ODBC 类(如本主题所述)或通过 MFC 数据访问对象 (DAO) 类,都可以访问 ODBC 数据源。

若要直接调用 ODBC API 函数,必须采取的步骤和在无框架情况下调用所采取的步骤相同。 这些步骤是:

  • 为调用返回的任何结果分配存储空间。

  • 根据函数的参数签名,传递 ODBC HDBCHSTMT 句柄。 使用 AFXGetHENV 宏检索 ODBC 句柄。

    因为成员变量 CDatabase::m_hdbcCRecordset::m_hstmt 是可用的,所以不需要您亲自分配和初始化这些变量。

  • 也许还要调用其他的 ODBC 函数为主调用做准备或者跟在主调用之后。

  • 调用完成后,解除分配存储空间。

有关这些步骤的更多信息,请参见 MSDN 文档中的开放式数据库连接 (ODBC) SDK。

除这些步骤之外,您需要采取另外一些步骤检查函数返回值,确保您的程序不是在等待完成一个异步调用等。 可以通过使用 AFX_SQL_ASYNCAFX_SQL_SYNC 宏简化最后的这些步骤。 有关更多信息,请参见《MFC 参考》中的宏和全局

请参见

概念

ODBC 基础