説明
OraDynasetオブジェクトは、SQL SELECT文から作成されたデータの参照と更新を許可します。
備考
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メソッドには、ロックを待機するかどうかを決定できるオプションがあります。
プロパティ
メソッド