次の方法で共有


BeginTrans、CommitTrans、および RollbackTrans メソッド (ADO)

これらのトランザクション メソッドは、次のように Connection オブジェクト内のトランザクション処理を操作します。

  • BeginTrans: 新しいトランザクションを開始します。

  • CommitTrans: 変更があれば保存し、現在のトランザクションを終了します。 また、新しいトランザクションを開始することもできます。

  • RollbackTrans: 現在のトランザクション中に行われた変更を取り消し、トランザクションを終了します。 また、新しいトランザクションを開始することもできます。

構文

  
level = object.BeginTrans()  
object.BeginTrans  
object.CommitTrans  
object.RollbackTrans  

戻り値

BeginTrans は、トランザクションの入れ子レベルを示す Long 変数を返す関数として呼び出すことができます。

パラメーター

object
Connection オブジェクト。

Connection

ソース データに対して行われた一連の変更を 1 つの単位として保存またはキャンセルする場合は、Connection オブジェクトでこれらのメソッドを使用します。 たとえば、口座間で送金するには、一方から金額を減算し、同額を他方に加算します。 いずれかの更新が失敗した場合、口座の残高は合わなくなります。 オープン トランザクション内でこれらの変更を行うと、すべての変更が行われるか、一切変更が行われないかのいずれかになります。

注意

すべてのプロバイダーでトランザクションがサポートされているわけではありません。 プロバイダー定義のプロパティ "Transaction DDL" が Connection オブジェクトの Properties コレクションに表示されることを確認してください。これはプロバイダーでトランザクションがサポートされていることを示します。 プロバイダーでトランザクションがサポートされていない場合、これらのメソッドのいずれかを呼び出すとエラーが返されます。

BeginTrans メソッドを呼び出した後、CommitTrans または RollbackTrans を呼び出してトランザクションを終了するまで、プロバイダーは変更を瞬時にコミットしなくなります。

入れ子になったトランザクションをサポートするプロバイダーの場合、オープン トランザクション内で BeginTrans メソッドを呼び出すと、入れ子になった新しいトランザクションが開始されます。 戻り値は入れ子のレベルを示します。戻り値 "1" は、最上位レベルのトランザクションをオープンした (つまり、トランザクションが別のトランザクション内で入れ子になっていない) ことを示します。"2" は、第 2 レベルのトランザクション (最上位レベルのトランザクション内で入れ子になったトランザクション) をオープンしたことを示します。 CommitTrans または RollbackTrans の呼び出しは、最後にオープンされたトランザクションのみに影響します。現在のトランザクションを閉じるかロールバックしてから、上位レベルのトランザクションを解決する必要があります。

CommitTrans メソッドを呼び出すと、接続中のオープン トランザクション内で行われた変更が保存され、トランザクションは終了します。 RollbackTrans メソッドを呼び出すと、オープン トランザクション内で行われた変更が取り消され、トランザクションは終了します。 オープン トランザクションがない場合にいずれかのメソッドを呼び出すと、エラーが発生します。

Connection オブジェクトの Attributes プロパティに応じて、CommitTrans または RollbackTrans メソッドのいずれかを呼び出すと、新しいトランザクションが自動的に開始される場合があります。 Attributes プロパティが adXactCommitRetaining に設定されている場合、プロバイダーは CommitTrans 呼び出しの後に新しいトランザクションを自動的に開始します。 Attributes プロパティが adXactAbortRetaining に設定されている場合、プロバイダーは RollbackTrans 呼び出しの後に新しいトランザクションを自動的に開始します。

Remote Data Service

BeginTransCommitTrans、および RollbackTrans メソッドは、クライアント側の Connection オブジェクトでは使用できません。

適用対象

Connection オブジェクト (ADO)

参照

BeginTrans、CommitTrans、および RollbackTrans メソッドの例 (VB)
BeginTrans、CommitTrans、および RollbackTrans メソッドの例 (VC++)
Attributes プロパティ (ADO)