適用対象
説明
すべてのトランザクションを無条件にロール・バックし、BeginTransメソッドによって開始されたトランザクション・モードを消去します。
使用方法
oraconnection.ResetTransorasession.ResetTrans
備考
このメソッドでは、イベントもエラーも生成されません。ResetTransメソッドはイベントを生成しないため、ロールバック操作やコミット操作のように、ValidateイベントのResetTransメソッドを取り消すことはできません。
注意: OraDatabaseオブジェクトがMicrosoft Transaction Server(MTS)にリストされていて、グローバルMTSトランザクションの一部である場合、このメソッドは無効です。
例
この例では、BeginTransおよびResetTransメソッドを使用して、ダイナセットに対する一連の編集を1つのトランザクションにグループ化する方法を示します。このコードをコピーして、フォームの定義セクションに貼り付けてください。次に[F5]を押します。
Sub Form_Load ()
'Declare variables
Dim OraSession As OraSession
Dim OraDatabase As OraDatabase
Dim OraDynaset As OraDynaset
'Create the OraSession Object.
Set OraSession = CreateObject("OracleInProcServer.XOraSession")
'Create the OraDatabase Object by opening a connection to Oracle.
Set OraDatabase = OraSession.OpenDatabase("ExampleDb", "scott/tiger", 0&)
'Create the OraDynaset Object.
Set OraDynaset = OraDatabase.CreateDynaset("select * from emp", 0&)
'Start Transaction processing.
OraDynaset.Session.BeginTrans
'Traverse until EOF is reached, setting each employee's salary to zero.
Do Until OraDynaset.EOF
OraDynaset.Edit
OraDynaset.Fields("sal").value = 0
OraDynaset.Update
OraDynaset.MoveNext
Loop
MsgBox "All salaries set to ZERO."
'Currently, the changes have NOT been committed to the database.
'End Transaction processing.
'Using ResetTrans means the rollback cannot be canceled in the Validate event.
OraDynaset.Session.ResetTrans
MsgBox "Salary changes rolled back."
End Sub