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

前
 
次
 

CommitTransメソッド

適用対象

OraConnectionオブジェクト

OraDatabaseオブジェクト

OraSessionオブジェクト

説明

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

使用方法

oraconnection.CommitTrans
oradatabase.CommitTrans
orasession.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