カーソル・タイプは、プログラミング・インタフェースから明示的または暗黙的に要求します。インタフェース・ライブラリが異なれば、使用できるカーソル・タイプは異なります。たとえば、JDBC と ODBC では使用できるカーソル・タイプは異なります。
各カーソル・タイプは、複数の特性によって定義されます。
一意性 カーソルがユニークであることを宣言すると、クエリは、各ローをユニークに識別するために必要なすべてのカラムを返すように設定されます。これは、プライマリ・キー内にあるすべてのカラムを返すということをしばしば意味します。必要だが指定されないすべてのカラムは結果セットに追加されます。デフォルトでは、カーソル・タイプは非ユニークです。
更新可能性 読み込み専用として宣言されたカーソルは、位置付け更新と位置付け削除のどちらの操作でも使用されません。デフォルトでは、更新可能のカーソル・タイプに設定されています。
スクロール動作 結果セットを移動するときにカーソルが異なる動作をするように宣言できます。カーソルによっては、現在のローまたはその次のローしかフェッチできません。結果セットを後方に移動したり、前方に移動したりできるカーソルもあります。
感知性 データベースに加えた変更を、カーソルを使用して表示/非表示にすることができます。
これらの特性に応じて、パフォーマンスやデータベース・サーバでのメモリ使用量にかなりの影響をもたらすことがあります。
SQL Anywhere では、さまざまな特性を持つカーソルを使用できます。特定のタイプのカーソルを要求すると、SQL Anywhere は、その特性を一致させるよう試みます。
特性を全部指定できない場合もあります。たとえば、SQL Anywhere の insensitive カーソルは読み込み専用です。それは、更新可能な insensitive カーソルをアプリケーションが要求すると、代わりに、別のカーソル・タイプ (value-sensitive カーソル) が指定されるからです。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |