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。 驱动程序必须对此进行检查。