適用対象
説明
現在のトランザクションを終了し、保留中の変更をすべてデータベースにコミットします。
使用方法
oraconnection.CommitTrans oradatabase.CommitTrans orasession.CommitTrans
備考
これらのオブジェクトに対するCommitTransメソッドの動作は、次のように異なります。
OraConnectionおよびOraDatabase
CommitTransメソッドは、指定した接続に対して保留中の全トランザクションをコミットします。トランザクションが開始されていない場合、このメソッドは無効です。セッション全体のトランザクションが進行中の場合は、指定された接続用のトランザクションを早い時点でコミットするために、このメソッドを使用できます。
OraSession
CommitTransメソッドは、セッション内に存在する全トランザクションをコミットします。CommitTransメソッドは、トランザクションが開始されている場合のみ有効です。トランザクションが開始されていないときに、CommitTransを使用するとエラーが発生します。
注意: OraDatabaseオブジェクトがMicrosoft Transaction Server(MTS)にリストされていて、グローバルMTSトランザクションの一部である場合、このメソッドは無効です。
例
この例では、BeginTransメソッドを使用して、ダイナセットに対する一連の編集を1つのトランザクションにグループ化する方法を示します。次に、CommitTransメソッドを使用して変更を受け入れる方法を示します。このコードをフォームの定義セクションにコピーしてください。次に[F5]を押します。
Sub Form_Load ()
'Declare variables
Dim OraSession As OraSession
Dim OraDatabase As OraDatabase
Dim OraDynaset As OraDynaset
Dim fld As OraField
'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.
OraSession.BeginTrans
'Setup a field object to save object references.
Set fld = OraDynaset.Fields("sal")
'Traverse until EOF is reached, setting each employees salary to zero.
Do Until OraDynaset.EOF = True
OraDynaset.Edit
fld.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. Commit the changes to the database
OraSession.CommitTrans
MsgBox "Salary changes committed."
End Sub