Condividi tramite


CDatabase::BeginTrans

Chiamare la funzione membro per avviare una transazione con l'origine dati collegata.

BOOL BeginTrans( );

Valore restituito

Diverso da zero se la chiamata ha esito positivo e modifiche viene eseguito il commit solo manualmente, in caso contrario 0.

Note

Una transazione è costituito da uno o più chiamate a AddNew, Modifica, Eliminale funzioni membro e AggiornaCRecordset oggetto.Prima di avviare una transazione, l'oggetto CDatabase deve essere già connesso all'origine dati chiamando la funzione membro Apri o OpenEx.Per terminare la transazione, chiamare CommitTrans per accettare le modifiche all'origine dati e portarle out) o la chiamata Rollback per interrompere l'intera transazione.Chiamata BeginTrans dopo l'apertura tutti i recordset legate alla transazione e vicini alle effettive operazioni di aggiornamento possibile.

Nota di avvisoAttenzione

A seconda del driver ODBC, aprire un recordset prima di chiamare BeginTrans possono verificarsi problemi quando si chiama Rollback.Controllare il driver specifico utilizzato.Ad esempio quando si utilizza il driver per Microsoft Access incluso nel pacchetto desktop 3,0 del driver Microsoft ODBC, è necessario rappresentare la condizione del motore di database Jet che non è necessario avviare una transazione in un database contenente un cursore aperto.Nelle classi di database MFC, un cursore aperto significa un oggetto aperto CRecordset.Per ulteriori informazioni, vedere nota tecnica 68.

BeginTrans può bloccare i record di dati nel server, come la concorrenza richiesta e le funzionalità dell'origine dati.Per informazioni sui dati del blocco, vedere l'articolo recordset: Blocco dei record (ODBC).

Le transazioni definite dall'utente sono descritte nell'articolo transazione (ODBC).

BeginTrans stabilisce lo stato della sequenza di transazioni è possibile eseguire il rollback da (inverso).Per stabilire un nuovo stato per la riduzione dei prezzi, eseguire il commit di tutte le transazione corrente, la chiamata BeginTrans.

Nota di avvisoAttenzione

Se si chiama nuovamente BeginTrans senza chiamare CommitTrans o Rollback, si verificherà un errore.

Chiamare la funzione membro CanTransact per determinare se il driver supporta le transazioni per un determinato database.È inoltre necessario chiamare GetCursorCommitBehavior e GetCursorRollbackBehavior per determinare il supporto per mantenere il cursore.

Per ulteriori informazioni sulle transazioni, vedere l'articolo transazione (ODBC).

Esempio

Vedere l'articolo transazione: Esecuzione di una transazione in un recordset (ODBC).

Requisiti

Header: afxdb.h

Vedere anche

Riferimenti

Classe CDatabase

Grafico della gerarchia

CDatabase::CommitTrans

CDatabase::Rollback

CRecordset::CanTransact