備考
OraDynaset
オブジェクトは、SQL SELECT
問合せの結果セットまたはストアド・プロシージャやファンクションから戻ったPL/SQLカーソル変数を表します。これは本来、クライアント側でスクロールおよび更新できるカーソルで、実行した問合せで生成された行セットを参照できます。これは、OraDatabase
インタフェースのCreateDynaset
メソッドまたはCreateCustomDynaset
メソッドで作成されます。OraDynaset
オブジェクトを使用して、VARRAY
、ネストした表、Object
、REF
、LOB、BFILE
型など、リレーショナル列およびオブジェクト・リレーショナル列のインスタンスが含まれる結果セットをスクロールできます。
このオブジェクトは、更新などのデータベース操作を透過的にミラー化します。Update
メソッドを介してデータが更新されると、問合せのローカル・ミラー・イメージが更新されるため、問合せを再評価せずにデータが変更されたかのように見えます。レコードをダイナセットに追加するときにも、同じプロシージャが自動的に使用されます。ミラー化したデータのイメージがOracle Database上の実際のデータと一致していることを確認するために、整合性チェックが実行されます。整合性チェックが実行されるのは、必要な場合(更新の直前など)のみです。
作成およびリフレッシュ操作時に、OraDynaset
オブジェクトは、パラメータ名をSQL文のプレースホルダとして使用して、指定されたSQL文に関連する使用可能な入力パラメータをすべて自動的にバインドします。この結果、問合せの動的構築が簡素化され、同じSQL文でWHERE
句が異なるような複数の問合せの効率が向上します。
Oracle Objects for OLEを使用する場合、Edit
メソッドを実行するまで、データにはロックが設定されません。Edit
メソッドは、"SELECT
...
FOR
UPDATE"
文を使用してダイナセットのカレント・レコードに対するロックを取得しようとします。このロックは、レコードに対するロック設定時間を最短にするように、できるかぎり後に行われます。Edit
メソッドは、次の理由で失敗する可能性があります。
SQLの問合せがOracle SQLの更新規則に違反している(たとえば、計算済の列や表の結合を使用した場合)。
ロックの取得に必要な権限がユーザーにない。
他のユーザーがそのレコードをすでにロックしている。OpenDatabase
メソッドには、ロックを待機するかどうかを決定できるオプションがあります。
プロパティ