CDatabase::BeginTrans
Rufen Sie die Memberfunktion auf, um eine Transaktion mit der verbundenen Datenquelle zu starten.
BOOL BeginTrans( );
Rückgabewert
Ungleich 0 (null), wenn der Aufruf erfolgreich war und Änderungen werden nur manuell ein Commit ausgeführt; 0 andernfalls.
Hinweise
Eine Transaktion besteht aus einem oder mehreren Aufrufe AddNew, Bearbeiten, Löschen, und Update-Memberfunktionen von CRecordset ein Objekt.Bevor Sie eine Transaktion startet, muss das Objekt CDatabase an die Datenquelle bereits verbunden werden, indem seine OpenEx oder Öffnen-Memberfunktion aufruft.Um die Transaktion zu beenden, rufen Sie auf CommitTrans um alle Änderungen an der Datenquelle zu übernehmen (und sie durchführen) oder Rollback aufzurufen um die gesamte Transaktion abzubrechen.Aufruf BeginTrans, nachdem alle Recordsets öffnen, die in die Transaktion gehören und zu den tatsächlichen Aktualisierungsoperationen, so genau wie möglich.
Vorsicht |
---|
Je nach dem ODBC-Treiber verursacht möglicherweise das Öffnen eines Recordsets vor, BeginTrans dazu, Probleme, wenn Rollback aufgerufen wird.Sie sollten den Treiber überprüfen, den Sie verwenden.Wenn Sie beispielsweise den Microsoft Access-Treiber verwenden, der im Tischplattentreiber-Pack 3,0 Microsoft ODBC enthalten ist, müssen Sie die Anforderung des Jet-Datenbank-Moduls bestimmen, dass Sie eine Transaktion für jede Datenbank nicht starten sollen, die einen geöffneten Cursor verfügt.In den MFC-Datenbankklassen bedeutet ein offener Cursor ein offenes CRecordset-Objekt.Weitere Informationen finden Sie unter Technischer Hinweis 68. |
BeginTrans sperrt möglicherweise auch Datensätze auf dem Server, abhängig von der angeforderten Parallelität und den Funktionen der Datenquelle.Informationen zum Sperrendaten, finden Sie im Artikel Recordset: Sperren von Datensätzen (ODBC).
Benutzerdefinierte Transaktionen werden im Artikel Transaktion (ODBC) erläutert.
BeginTrans bildet den Zustand, zu dem die Sequenz von Transaktionen rückgängig gemacht werden kann (umgekehrt).Um einen neuen Zustand von Rollbacks zu bilden, führen Sie jede aktuelle Transaktion, dann Aufruf BeginTrans erneut anwenden.
Vorsicht |
---|
Das erneute Aufrufen von BeginTrans ohne CommitTrans oder Rollback aufzurufen stellt einen Fehler dar. |
Rufen Sie die CanTransact-Memberfunktion auf, um zu bestimmen, ob der Treiber Transaktionen für eine bestimmte Datenbank unterstützt.Sie sollten GetCursorCommitBehavior und GetCursorRollbackBehavior auch aufrufen, um die Unterstützung für Cursor-Beibehaltung zu bestimmen.
Weitere Informationen über Transaktionen, finden Sie im Artikel Transaktion (ODBC).
Beispiel
Weitere Informationen finden Sie im Artikel Transaktion: Eine Transaktion in einem Recordset ausführen (ODBC).
Anforderungen
Header: afxdb.h