.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
***********
トランザクションを実行したい場合は Transaction オブジェクト
を生成して Command.Transaction プロパティに設定して下さい。
ただ、お望み通りのレコードにロックがかかるかどうかまでは
知識不足なため保障できません。ごめんなさい。
IsolationLevel を指定すればいいようです。
ツイート | ![]() |