- PR -

VB2005でトランザクションの書き方

投稿者投稿内容
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-08-26 21:55
どうでもよさげな指摘。
MsgBox("更新異常終了")が実行されることはない。

修正して欲しい指摘。
MyCn.Close() は Finally ブロックに。
コード:
Try
    MyCn.Open()
    Dim tran As SqlClient.SqlTransaction = MyCn.BeginTransaction()
    Try
        '***** 追加・更新・削除コマンド *****
        MyDA.InsertCommand = CreateInsCmd(ここでtran渡せば?)
        MyDA.UpdateCommand = CreateUpdCmd()
        MyDA.DeleteCommand = CreateDelCmd()
        MyDA.InsertCommand.Transaction = tran
        MyDA.UpdateCommand.Transaction = tran
        MyDA.DeleteCommand.Transaction = tran
        '***** 更新実行 ******************
        MyDA.Update(tbl)
        tran.Commit()
        MsgBox("更新終了")

    Catch ex As Exception ' ex 使わないなら catch のみで
        tran.Rollback()
        MsgBox("更新異常終了")
        Throw
    End Try

Finally
    MyCn.Close()
End Try


LANVIN
大ベテラン
会議室デビュー日: 2007/03/12
投稿数: 211
投稿日時: 2007-08-27 09:53
Jittaさん、ご指摘ありがとうございます。

スキルアップ/キャリアアップ(JOB@IT)