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。 驅動程式必須檢查此專案。