次の方法で共有


SQLSetDescField および SQLSetDescRec (カーソル ライブラリ)

重要

この機能は、Windows の将来のバージョンで削除される予定です。 新しい開発作業ではこの機能を使用しないでください。また、現在この機能を使用しているアプリケーションの変更を計画してください。 Microsoft では、ドライバーのカーソル機能を使用することをお勧めします。

このトピックでは、カーソル ライブラリでの SQLSetDescField 関数と SQLSetDescRec 関数の使用について説明します。 これらの関数の一般的な情報については、「 SQLSetDescField 関数 」および 「SQLSetDescRec 関数」を参照してください。

カーソル ライブラリは、ブックマーク列に設定されたフィールドの値を返すために呼び出されたときに SQLSetDescField を実行します。

SQL_DESC_DATA_PTR

SQL_DESC_INDICATOR_PTR

SQL_DESC_OCTET_LENGTH_PTR

SQL_DESC_LENGTH

SQL_DESC_OCTET_LENGTH

SQL_DESC_DATETIME_INTERVAL_CODE

SQL_DESC_SCALE

SQL_DESC_PRECISION

SQL_DESC_TYPE

SQL_DESC_NAME

SQL_DESC_UNNAMED

SQL_DESC_NULLABLE

カーソル ライブラリは、ブックマーク列に対して SQLSetDescRec の 呼び出しを実行します。

ODBC 2.x ドライバーを使用する場合、カーソル ライブラリは SQLSetDescField または SQLSetDescRec が呼び出されたときに SQLSTATE HY090 (文字列またはバッファーの長さが無効) を返して、ARD のブックマーク レコードのSQL_DESC_OCTET_LENGTH フィールドを 4 と等しくない値に設定します。 ODBC 3.x ドライバーを使用する場合、カーソル ライブラリではバッファーを任意のサイズにすることができます。

カーソル ライブラリは、 SQLSetDescField が呼び出されたときに SQLSetDescField を実行して、SQL_DESC_BIND_OFFSET_PTR、SQL_DESC_BIND_TYPE、SQL_DESC_ROW_ARRAY_SIZE、または SQL_DESC_ROW_STATUS_PTR フィールドの値を返します。 これらのフィールドは、ブックマーク行だけでなく、任意の行に対して返すことができます。

カーソル ライブラリは、前述のフィールド以外の記述子フィールドを変更するために SQLSetDescField を実行しません。 カーソル ライブラリの読み込み中にアプリケーションが SQLSetDescField を呼び出して他のフィールドを設定した場合、呼び出しはドライバーに渡されます。

カーソル ライブラリでは、アプリケーション行記述子の任意の行のSQL_DESC_DATA_PTR、SQL_DESC_INDICATOR_PTR、およびSQL_DESC_OCTET_LENGTH_PTRフィールドを動的に変更できます (SQLExtendedFetch、SQLFetch、または SQLFetchScroll呼び出した後)。 SQL_DESC_OCTET_LENGTH_PTR フィールドを null ポインターに変更できるのは、列の長さバッファーのバインドを解除する場合のみです。

カーソル ライブラリでは、カーソルが開いているときに APD または ARD のSQL_DESC_BIND_TYPE フィールドを変更することはできません。 SQL_DESC_BIND_TYPE フィールドは、カーソルを閉じた後、新しいカーソルを開く前にのみ変更できます。 カーソルが開いているときにカーソル ライブラリが変更をサポートする記述子フィールドは、SQL_DESC_ARRAY_STATUS_PTR、SQL_DESC_BIND_OFFSET_PTR、SQL_DESC_DATA_PTR、SQL_DESC_INDICATOR_PTR、SQL_DESC_OCTET_LENGTH_PTR、SQL_DESC_ROWS_PROCESSED_PTRのみです。

カーソル ライブラリでは、 SQLExtendedFetch または SQLFetchScroll が呼び出された後、カーソルが閉じられる前に ARD のSQL_DESC_COUNT フィールドを変更することはできません。