付録 F: ODBC カーソル ライブラリ

Important

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

ODBCカーソルライブラリ(Odbccr32.dll)は、レベル1のAPI適合レベルに準拠した任意のドライバーに対してブロックスクロール可能なカーソルをサポートし、開発者がアプリケーションやドライバとともに再配布できます。 カーソルライブラリは、 SELECT 文によって生成された結果セットの位置更新および削除文もサポートしています。 静的カーソルとフォワードオンリーカーソルのみをサポートしていますが、多くのアプリケーションのニーズを満たしています。 さらに、特に小規模から中規模の結果セットや、十分なカーソルサポートがないアプリケーションにおいて優れたパフォーマンスを発揮します。

カーソルライブラリは、ドライバーマネージャーとドライバーの間に存在する動的リンクライブラリ(DLL)です。 アプリケーションが関数を呼び出すと、ドライバーマネージャーはカーソルライブラリ内の関数を呼び出し、その関数を実行するか指定されたドライバーで呼び出します。 ある接続に対して、アプリケーションはカーソルライブラリが常に使用されるか、ドライバがスクロール可能なカーソルをサポートしていない場合に使うか、あるいは一度も使わないかを指定します。

カーソルライブラリはドライバーマネージャーのドライバーとして表示されます。 カーソルライブラリがドライバーマネージャーとODBC 2.x ドライバーの間に存在する場合、カーソルライブラリはODBC 2.x ドライバーとして表示されます。 カーソルライブラリがドライバーマネージャーとODBC 3.x ドライバーの間に位置する場合、カーソルライブラリはODBC 3.x ドライバーとして表示されます。 カーソルライブラリが示す挙動は、動作しているドライバのバージョンに依存しますが、オフセットのバインディングはODBC 2.x およびODBC 3.x の両方のドライバでサポートされています。

SQLFetch および SQLFetchScroll でブロックカーソルを実装するには、カーソルライブラリがドライバー内で繰り返し SQLFetch を呼び出します。 スクロールを実現するには、取得したデータをメモリやディスクファイルにキャッシュします。 アプリケーションが新しい行セットを要求すると、カーソルライブラリは必要に応じてドライバーやキャッシュからそれを取得します。

位置付けされた更新文と削除文を実装するために、カーソルライブラリは行内の各バウンド列のキャッシュ値を指定するWHERE節を持つUPDATEまたはDELETE文を構築します。 位置付けされたupdate文を実行すると、カーソルライブラリは行セットバッファ内の値からキャッシュを更新します。

ODBCカーソルライブラリの詳細については、この付録の以下のセクションをご覧ください。