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 函数来准备或跟进主调用。

  • 完成后释放存储空间。

有关这些步骤的详细信息,请参阅 ODBC 程序员参考

除了这些步骤之外,还需要采取额外的步骤来检查函数返回值,确保程序没有等待异步调用完成,等等。 可以通过使用 AFX_SQL_ASYNC 和 AFX_SQL_SYNC 宏来简化这些最后的步骤。 有关详细信息,请参阅 MFC 宏和全局

另请参阅

ODBC 基础