tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル データベースの排他について
投稿日: 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()

------------------------------------------------------------------------

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。