カーソルが開くと結果セットに関連付けられます。一度開いたカーソルは一定時間開いたままになります。カーソルが開いている間、カーソルに関連付けられた結果セットは変更される可能性があります。変更は、カーソル自体を使用して行われるか、独立性レベルの稼働条件に基づいて他のトランザクションで行われます。カーソルには、基本となるデータを表示できるように変更できるものと、変更を反映しないものがあります。基本となるデータの変更に対する感知性によって、カーソルの動作 (「カーソルの感知性」) は変わります。
SQL Anywhere では、感知性に関するさまざまな特性をカーソルに定義しています。この項では、まず感知性について説明し、次にカーソル感知性の特性について説明します。
また、カーソルとは ?を読み終えていることが前提となります。
基本となるデータに加えた変更は、カーソルの結果セットの次の部分に影響を及ぼします。
メンバシップ 結果セットのローのセットです。プライマリ・キー値で指定されています。
順序 結果セットにあるローの順序です。
値 結果セットにあるローの値です。
たとえば、次のような従業員情報を記載した簡単なテーブルで考えてみます (EmployeeID はプライマリ・キー・カラムです)。
EmployeeID | Surname |
---|---|
1 | Whitney |
2 | Cobb |
3 | Chin |
以下のクエリのカーソルは、プライマリ・キーの順序でテーブルからすべての結果を返します。
SELECT EmployeeID, Surname FROM Employees ORDER BY EmployeeID; |
結果セットのメンバシップは、ローを追加するか削除すると変更されます。値を変更するには、テーブル内の名前をどれか変更します。ある従業員のプライマリ・キー値を変更すると順序が変更される場合があります。
カーソルを開いた後、独立性レベルの稼働条件に基づいて、カーソルの結果セットのメンバシップ、順序、値を変更できます。使用するカーソル・タイプに応じて、これらの変更を反映するために、アプリケーションが表示する結果セットが変更されることも変更されないこともあります。
基本となるデータに加えた変更は、カーソルを使って「表示」または「非表示」にできます。表示できる変更とは、カーソルの結果セットに反映されている変更のことです。基本となるデータに加えた変更が、カーソルが表示する結果セットに反映されない場合は、非表示です。
カーソル感知性の概要
カーソル感知性の例:削除されたロー
カーソル感知性の例:更新されるロー
insensitive カーソル
sensitive カーソル
asensitive カーソル
value-sensitive カーソル
カーソルの感知性とパフォーマンス
カーソルの感知性と独立性レベル
SQL Anywhere のカーソルの要求
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |