CDatabase::BeginTrans

BOOL BeginTrans ( );

Valore restituito

Diverso da zero se la chiamata ha avuto successo e le modifiche sono impegnate solo manualmente; in caso contrario 0.

Osservazioni

Chiamare questa funzione membro per iniziare una transazione con l'origine dati connessa. Una transazione è costituito da una o più chiamate alle funzioni membro AddNew, modificare, eliminaree aggiornamento di un oggetto CRecordset . Prima di iniziare una transazione, l'oggetto CDatabase deve già sono collegato all'origine dati chiamando la funzione membro OpenEx o aperta . Per terminare la transazione, chiamare CommitTrans ad accettare tutte le modifiche apportate all'origine dati (e trasportarle fuori) oppure chiamare il Rollback dell'intera transazione di interrompere. Chiamata BeginTrans dopo aver aperto i recordset di qualsiasi coinvolto nella transazione e come vicino all'effettivo aggiornare le operazioni possibili.

Cautela   A seconda del vostro driver ODBC, apertura di un recordset prima di chiamare BeginTrans possa causare problemi quando si chiama il Rollback. Si dovrebbe verificare il driver specifico che utilizzi. Ad esempio, quando si utilizza il driver di Microsoft Access incluso nel Microsoft ODBC Driver Desktop Pack 3.0, si deve conto per il requisito del motore di database Jet che non si dovrebbe cominciare una transazione in un database che dispone di un cursore aperto. In classi di database MFC, un cursore aperto significa un oggetto CRecordset aperto. Per ulteriori informazioni, vedere tecnica nota 68.

BeginTrans può anche bloccare i record di dati sul server, a seconda della contestualità richiesta e le funzionalità dell'origine dati. Per informazioni sul blocco di dati, vedere l'articolo Recordset: blocco dei record (ODBC) nel manuale del programmatore di Visual C++.

Transazioni definite dall'utente sono spiegate nell'articolo Transazione (ODBC) nel manuale del programmatore di Visual C++.

BeginTrans stabilisce lo stato a cui la sequenza di operazioni può essere ripristinata (invertito). Per stabilire un nuovo stato per ripristini, commettere qualsiasi transazione corrente, quindi chiamare nuovamente BeginTrans.

! AVVISO   Chiamando BeginTrans nuovamente senza chiamare CommitTrans o Rollback è un errore.

Chiamare la funzione membro CanTransact per determinare se il driver supporta le transazioni per un determinato database. Si devono chiamare anche GetCursorCommitBehavior e GetCursorRollbackBehavior per determinare il sostegno per la conservazione del cursore.

Per ulteriori informazioni sulle transazioni, vedere l'articolo Transazione (ODBC) nel manuale del programmatore di Visual C++.

Esempio

Vedere l'articolo transazione: esecuzione di una transazione in un Recordset (ODBC) nel manuale del programmatore di Visual C++.

Pa&noramica di CDatabase |nbsp; Membri della classe | Gerarchia Chart

Vedere a&nchenbsp;CDatabase::CommitTrans, CDatabase::Rollback, CRecordset::CanTransact

Index