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)  
    

上記の 3 つの場合、 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 ドライバーの場合、ドライバー マネージャーは オプション がSQL_STMT_OPT_MINとSQL_STMT_OPT_MAXの間にあるか、SQL_CONNECT_OPT_DRVR_STARTより大きいかどうかを確認しなくなりました。 ドライバーはこれを確認する必要があります。