SQLSetPos (カーソル ライブラリ)
重要
この機能は、Windows の将来のバージョンで削除される予定です。 新しい開発作業ではこの機能を使用しないでください。また、現在この機能を使用しているアプリケーションの変更を計画してください。 Microsoft では、ドライバーのカーソル機能を使用することをお勧めします。
このトピックでは、カーソル ライブラリでの SQLSetPos 関数の使用について説明します。 SQLSetPos の一般的な情報については、「SQLSetPos 関数」を参照してください。
カーソル ライブラリは、SQLSetPos の Operation 引数に対してのみSQL_POSITION操作をサポートします。 LockType 引数に対してのみSQL_LOCK_NO_CHANGE値がサポートされます。
ドライバーが一括操作をサポートしていない場合、RowNumber が 0 に等しい SQLSetPos が呼び出されると、カーソル ライブラリは SQLSTATE HYC00 (ドライバーに対応していません) を返します。 このドライバーの動作は推奨されません。
カーソル ライブラリは、 SQLSetPos の呼び出しでのSQL_UPDATEおよびSQL_DELETE操作をサポートしていません。 カーソル ライブラリは、連結列ごとにキャッシュに格納されている値を列挙する WHERE 句を使用して検索された更新または削除ステートメントを作成することで、位置指定された更新または削除 SQL ステートメントを実装します。 詳細については、「 位置指定された更新ステートメントと Delete ステートメントの処理」を参照してください。
ドライバーが静的カーソルをサポートしていない場合、カーソル ライブラリを使用するアプリケーションは、SQLFetch ではなく、SQLExtendedFetch または SQLFetchScroll によってフェッチされた行セットでのみ SQLSetPos を呼び出す必要があります。 カーソル ライブラリは、 SQLExtendedFetch と SQLFetchScroll を実装します。ドライバーで SQLFetch を繰り返し呼び出します (行セット サイズは 1)。 カーソル ライブラリは、 SQLFetch への呼び出しをドライバーに渡します。 ドライバーが静的カーソルをサポートしていないときに SQLFetch によってフェッチされた複数行セットで SQLSetPos が呼び出された場合、SQLSetPos は順方向専用カーソルでは機能しないため、呼び出しは失敗します。 これは、アプリケーションが SQLSetStmtAttr を正常に呼び出してSQL_ATTR_CURSOR_TYPEを SQL_CURSOR_STATIC に設定した場合でも発生します。これは、ドライバーが静的カーソルをサポートしていない場合でもカーソル ライブラリでサポートされます。