ヘッダーをスキップ
Oracle® Objects for OLE開発者ガイド
11gリリース2 (11.2) for Microsoft Windows
B58887-04
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

Rollbackメソッド

説明

現在のトランザクションを終了し、保留中の変更すべてをデータベースにロールバックします。

使用方法

oraconnection.Rollback
orasession.Rollback
oradatabase.Rollback

備考

このメソッドをコールすると、指定したセッションまたは接続を共有するすべてのOraDynasetオブジェクトに対して、ロールバック要求を取り消す機会が与えられます。要求を取り消さない場合は、ロールバックが正常終了した時点でオブジェクトに通知されます。

この機能は、Oracle Data Control操作の一部として作成されるダイナセットに特に便利です。これらのダイナセットに対して、Validateイベントを送信し、ロールバック要求を取り消すことができるようにします。

  • OraConnectionおよびOraDatabase:

    Rollbackメソッドは、指定した接続内で保留中の全トランザクションをロールバックします。トランザクションが開始されていない場合、このメソッドは無効です。セッション全体のトランザクションが進行中の場合は、指定された接続用のトランザクションを早い時点でロールバックするために、このコールを使用できます。

  • OraSession:

    Rollbackメソッドは、指定したセッション内で保留中の全トランザクションをロールバックします。Rollbackメソッドは、トランザクションが開始されている場合のみ有効です。トランザクションが開始されていないときに、Rollbackメソッドを使用するとエラーが発生します。


注意:

OraDatabaseオブジェクトがMicrosoft Transaction Server(MTS)にリストされていて、グローバルMTSトランザクションの一部である場合、このメソッドは無効です。

この例では、BeginTransおよびRollbackメソッドを使用して、ダイナセットに対する一連の編集を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.
 OraDynaset.Session.Rollback
 MsgBox "Salary changes rolled back."
 
End Sub