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 フィールドを変更することはできません。