16.8.6.9 GetCustomObjectForUpdate(bool)
このメソッドは、データベース内で指定したREF
をロックし、指定したwaitオプションを使用して、カスタム・タイプとして指定したREF
が参照するオブジェクトを戻します。
宣言
// C#
public object GetCustomObjectForUpdate(bool bWait);
パラメータ
-
bWait
REF
がno-waitオプションでロックされるかどうかを指定します。waitがtrue
に設定されている場合、このメソッドを起動しても、REF
がロックされるまで値は戻りません。
戻り値
指定したREF
が参照するオブジェクトを表すカスタム・オブジェクト。
例外
InvalidOperationException
- 指定した接続がオープンされていないか、有効なカスタム・タイプが参照オブジェクトのタイプに登録されていません。
OracleException
- bWait
がfalse
に設定されており、ロックを取得できません。
備考
このメソッドは、OracleRef
接続で登録したカスタム・タイプで定義した参照オブジェクトの最新のコピーをカスタム・タイプとして戻します。
OracleRef
のFlush
メソッドまたはOracleConnection
のFlushCache
メソッドを使用してREF
をフラッシュした後、REF
で適切にロックを解除するには、アプリケーションはトランザクションをコミットまたはロールバックする必要があります。このため、このメソッドを呼び出す前に、OracleConnection
オブジェクトでBeginTransaction
メソッドを実行して、明示的にトランザクションを開始する必要があります。
このメソッドはネットワーク・ラウンドトリップを作成してデータベース内のREF
をロックします。このコールの後、プログラマは関連付けられた行オブジェクトを排他的に変更できます。その後で、OracleRef
のFlush
メソッドまたはOracleConnection
のFlushCache
メソッドへのコールを実行すると、データベースへの変更がフラッシュされます。
true
が渡されると、このメソッドはロックが取得されるまでブロックされます。false
が渡される場合は、このメソッドはただちに値を戻します。ロックが取得できない場合は、OracleException
がスローされます。
接続は、アプリケーションによって明示的にオープンされる必要があります。このメソッドでは、接続を暗黙的にオープンしません。