SQLGetStmtOption 映射
当应用程序调用 SQLGetStmtOption 到不支持它的 ODBC 3.x 驱动程序时,调用
SQLGetStmtOption(hstmt, fOption, pvParam)
结果如下所示:
如果 fOption 指示返回字符串的 ODBC 定义的语句选项,驱动程序管理器将调用
SQLGetStmtAttr(StatementHandle, Attribute, ValuePtr, BufferLength, NULL)
如果 fOption 指示返回 32 位整数值的 ODBC 定义的语句选项,驱动程序管理器将调用
SQLGetStmtAttr(StatementHandle, Attribute, ValuePtr, 0, NULL)
如果 fOption 指示驱动程序定义的语句选项,驱动程序管理器将调用
SQLGetStmtAttr(StatementHandle, Attribute, ValuePtr, BufferLength, NULL)
在上述三种情况下, StatementHandle 参数设置为 hstmt 中的值, Attribute 参数设置为 fOption 中的值, ValuePtr 参数设置为 与 pvParam 相同的值。
对于 ODBC 定义的字符串连接选项,驱动程序管理器在调用 SQLGetConnectAttr 时将 BufferLength 参数设置为预定义的最大长度 (SQL_MAX_OPTION_STRING_LENGTH) ;对于非字符串连接选项,BufferLength 设置为 0。
ODBC 3.x 中已弃用 SQL_GET_BOOKMARK 语句选项。 要使 ODBC 3.x 驱动程序能够与使用 SQL_GET_BOOKMARK 的 ODBC 2.x 应用程序配合使用,它必须支持SQL_GET_BOOKMARK。 要使 ODBC 3.x 驱动程序能够与 ODBC 2.x 应用程序配合使用,它必须支持将 SQL_USE_BOOKMARKS 设置为 SQL_UB_ON,并且应公开固定长度书签。 如果 ODBC 3.x 驱动程序仅支持可变长度书签,而不支持固定长度书签,则如果 ODBC 2.x 应用程序尝试将 SQL_USE_BOOKMARKS 设置为 SQL_UB_ON,则必须返回 SQLSTATE HYC00 () 未实现的可选功能。
对于 ODBC 3.x 驱动程序,驱动程序管理器不再检查 Option 是介于 SQL_STMT_OPT_MIN 与 SQL_STMT_OPT_MAX 之间,还是大于 SQL_CONNECT_OPT_DRVR_START。 驱动程序必须对此进行检查。