Transaction - kura2391/vbsql GitHub Wiki

トランザクション

トランザクションは以下のようにして記述することができます。

        Dim connection as New Vbsql.Connection(connectionString)
        Try

            'start 
            connection.beginTransaction()

            Dim update As New Vbsql.Update(connection)
            //条件記述等...
            update.execute()

            'commit
            connection.commitTransaction()
        Catch ex As Exception
            MsgBox(ex.Message)

            '問題が起きたので、変更を元に戻す
            connection.rollbackTransaction()
        Finally

            'transactionを使用するときは必ず最後にcloseTransactionする
            connection.closeTransaction()
        End Try

Transactionに必要な関数は4つで、すべて接尾辞がTransactionです。Connectionクラスから実行できます

  • beginTransaction()
    • この関数をはじめに実行します。
  • commitTransaction()
    • beginTransaction()以降のexecute(select文を除く)関数による、テーブル変更などの結果を保存します。
    • この関数を実行しないと保存されません。
  • rollbackTransaction()
    • begin - commit間のsql実行で問題が発生した場合(exceptionが発生した場合)に実行するべき関数です。
    • begin - commit間で実行したsql文によるデータベースへの変更を元に戻します。
  • closeTransaction()
    • どんな状況であれ、beginTransaction()した後は必ず実行されるべき関数です。
    • データベースへの接続を終了し、transactionを終了します。