タイトル : データベースの排他について 投稿日 : 2011/07/05(Tue) 21:53 投稿者 : FIN
初めまして,FINと申します。 VB.NET歴2年の初心者です。 下記のようなコーディングをしたところ、更新処理をコミットされるまで他のトランザクション(別ユーザ)がテーブルに更新出来ない現象が発生致しました。 楽観的排他を行なう場合はどのようなコーディングが必要でしょうか? 実行環境OS:WindowsXP .NETのバージョン:.NET Framework2.0 データベース:Oracle8I 以下、ソース ------------------------------------------------------------------------ '接続オブジェクトをインスタンス化します。 Me._con = New OracleConnection(Me._ocsb.ConnectionString) 'データベースに接続します。 Me._con.Open() 'コマンドオブジェクトをインスタンス化します。 Me._cmd = New OracleCommand() 'コマンドオブジェクトに接続オブジェクトを引き渡します。 Me._cmd.Connection = Me._con 'トランザクションを開始します。 Me._tran = Me._con.BeginTransaction() 'コマンドオブジェクトにトランザクションを引き渡します。 Me._cmd.Transaction = Me._tran 'SQLを設定します。 Dim sql As String = "*更新SQL*" 'SQLを実行します。 Me._cmd.CommandText = sql 'この処理間に更新対象テーブルが他のトランザクションからアクセス出来なくなります。 'コミット処理を行います。 Me._tran.Commit() ------------------------------------------------------------------------ |