次の方法で共有


CDatabase::BeginTrans

接続されたデータ ソースからトランザクションを開始するには、このメンバー関数を呼び出します。

BOOL BeginTrans( );

戻り値

呼び出しが成功した場合は、手動で変更だけコミットされます。; それ以外の場合は 0。

解説

トランザクションは AddNew[編集]、**[削除]**に一つ以上の呼び出しで構成され、CRecordset更新 のメンバー関数を追加します。トランザクションを開始する前に、データ ソースへの CDatabase のオブジェクトは既に OpenEx または [開く] のメンバー関数を呼び出すことによって接続されている必要があります。トランザクションを終了するには、データ ソースへのすべての変更 (、) を格納するよう受け入れまたはトランザクション全体を中止するように [ロールバック] を呼び出すように CommitTrans を呼び出します。トランザクションに使用され、同様にできる限り実際の更新操作に近いレコードセットを開いたら使用 BeginTrans

Caution メモ注意

ODBC ドライバーによって、BeginTrans を呼び出す前に、レコードセットを開くには [ロールバック]を呼び出すときに問題が発生する可能性があります。使用する特定のドライバーを確認する必要があります。[カーソルを持つデータベースのトランザクションを開始する必要があります。たとえば、デスクトップの Microsoft ODBC Driver Pack 3.0 に含まれる Microsoft Access ドライバーを使用する場合は Jet データベース エンジンの条件を考慮する必要があります。MFC データベース クラスでは、[カーソルは CRecordset の開いているオブジェクトを意味します。詳細については、テクニカル ノート 68を参照してください。

BeginTrans は、データ ソースの要求された同時実行と機能によって、サーバーのデータ レコードをロックする場合があります。データのロックの詳細については、" " レコードセット: レコード ロックします (ODBC) をを参照してください。

ユーザー定義のトランザクションは、" " トランザクション (ODBC)に示します。

BeginTrans のシーケンスはトランザクションをロールバックできる状態を確立します (逆にする)。ロールバックの新しい状態を確立するには、現在のトランザクション、およびの呼び出し BeginTrans を再度コミットします。

Caution メモ注意

CommitTrans または Rollback を呼び出さずに BeginTrans を再度呼び出すと、エラーが発生します。

使用しているドライバーが特定のデータベースのトランザクションをサポートするかどうかを確認するに CanTransact のメンバー関数を呼び出します。カーソルの保存のサポートを確認するに GetCursorCommitBehaviorGetCursorRollbackBehavior を呼び出す必要があります。

トランザクションに関する詳細については、" " トランザクション (ODBC)を参照してください。

使用例

トランザクション: レコードセット (ODBC) でトランザクションを実行します。" "を参照してください。

必要条件

Header: afxdb.h

参照

関連項目

CDatabase クラス

階層図

CDatabase::CommitTrans

CDatabase::Rollback

CRecordset::CanTransact