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を終了します。