符合标准的应用程序和驱动程序

符合标准的应用程序或驱动程序符合开放组 CAE 规范“数据管理:SQL 调用级别接口 (CLI)”和 ISO/IEC 9075-3:1995 (E) 调用级别接口 (SQL/CLI)。

ODBC 3.x 保证以下功能:

  • 当应用程序使用 ODBC 3.x 头文件编译并与 ODBC 3.x 库链接时,以及当其通过 ODBC 3.x 驱动程序管理器获得对驱动程序的访问权限时,写入 Open Group 和 ISO CLI 规范的应用程序将与 ODBC 3.x 驱动程序或符合标准的驱动程序一起使用。

  • 当驱动程序使用 ODBC 3.x 头文件编译并与 ODBC 3.x 库链接时,以及当应用程序通过 ODBC 3.x 驱动程序管理器获得对驱动程序的访问权限时,写入 Open Group 和 ISO CLI 规范的驱动程序将与 ODBC 3.x 应用程序或符合标准的应用程序一起使用。

符合标准的应用程序和驱动程序使用 ODBC_STD 编译标志进行编译。

符合标准的应用程序表现出以下行为:

  • 如果符合标准的应用程序调用 SQLAllocEnv(因为 SQLAllocEnv 是 Open Group 和 ISO CLI 中的有效函数),则调用在编译时映射到 SQLAllocHandleStd。 因此,在运行时,应用程序调用 SQLAllocHandleStd。 在处理此调用的过程中,驱动程序管理器将 SQL_ATTR_ODBC_VERSION 环境属性设置为 SQL_OV_ODBC3。 对 SQLAllocHandleStd 的调用等效于对 SQLAllocHandle 的调用,该调用的 HandleType 为 SQL_HANDLE_ENV,对 SQLSetEnvAttr 的调用将 SQL_ATTR_ODBC_VERSION 设置为 SQL_OV_ODBC3。

  • 如果符合标准的应用程序调用 SQLBindParam(因为 SQLBindParam 是 Open Group 和 ISO CLI 中的有效函数),ODBC 3.x 驱动程序管理器会将调用映射到 SQLBindParameter 中的等效调用。 (请参阅“附录 G:驱动程序后向兼容性准则”中的 SQLBindParam 映射。)

  • 为了与 ISO CLI 保持一致,ODBC 3.x 头文件包含在对 SQLGetInfo 的调用中使用的信息类型的别名。 符合标准的应用程序可以使用这些别名,而不是 ODBC 3.x 信息类型。 有关详细信息,请参阅下一主题“头文件”。

  • 符合标准的应用程序必须验证其支持的所有功能在其将使用的驱动程序中是否受支持。 将 SQL_ATTR_CURSOR_SCROLLABLE 语句属性设置为 SQL_SCROLLABLE,并将 SQL_ATTR_CURSOR_SENSITIVITY 语句属性设置为 SQL_INSENSITIVE 或 SQL_SENSITIVE 是标准中作为可选功能提供的功能,但不包括在 ODBC 3.x 核心级别中,因此可能不受所有 ODBC 3.x 驱动程序支持。 如果符合标准的应用程序使用这些功能,则应验证其将使用的驱动程序是否支持这些功能。