符合标准的应用程序或驱动程序符合开放组 CAE 规范的“数据管理:SQL Call-Level 接口(CLI),”和 ISO/IEC 9075-3:1995(E) Call-Level 接口(SQL/CLI)。
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 3.x 头文件进行编译并与 ODBC 3.x 库链接时,当应用程序通过 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 Core 级别中,因此可能不受所有 ODBC 3.x 驱动程序支持的功能。 如果符合标准的应用程序使用这些功能,则应验证驱动程序是否支持它们。