トランザクション処理をするには?


あおあお  2004-08-26 20:29:14  No: 115879

.NETで開発をしています。

下記のようにテキストボックスに入力した内容でマスタを参照しています。
この時、他からアクセスできないようにレコードロックをかけたく、トランザクション処理を行いたいのですが、どのようにすればよいのでしょうか?
説明がうまくできませんが、よろしくお願いいたします。

Dim cnCmd As SqlCommand
Dim cnRd As SqlDataReader

 Call adoCmdCreate(cnCmd, cn) ' Command Object作成

 If adoOpenReader(cnCmd, cnRd, strsql) Then
      If cnRd.HasRows Then
         cnRd.Read()
         Meisyo = RTrim(CType(cnRd.Item("hinme"), String))
      End If
 End If
 Call adoCloseReader(cnRd)

*****    オープン
Public Overloads Function adoOpenReader(ByRef adoCmd As SqlCommand, ByRef adoReader As SqlDataReader, ByVal sExec As String) As Boolean

   Try
     adoCmd.CommandText = sExec        ' SqlCommand文 作成
     adoReader = adoCmd.ExecuteReader    
   Catch
   End Try
  
End Function
***********


特攻隊長まるるう  2004-08-27 01:17:13  No: 115880

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpguide/html/cpconperformingtransactions.asp

トランザクションを実行したい場合は Transaction オブジェクト
を生成して Command.Transaction プロパティに設定して下さい。
ただ、お望み通りのレコードにロックがかかるかどうかまでは
知識不足なため保障できません。ごめんなさい。


特攻隊長まるるう  2004-08-27 02:36:48  No: 115881

追加情報
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdatasqlclientsqlconnectionclassbegintransactiontopic2.asp

IsolationLevel を指定すればいいようです。


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加