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 定義的字串連接字串選項,Driver Manager 會將 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。 驅動程式必須檢查此專案。