Condividi tramite


Metodi BeginTrans, CommitTrans e RollbackTrans (ADO)

Questi metodi di transazione gestiscono l'elaborazione delle transazioni all'interno di un oggetto Connection come indicato di seguito:

  • BeginTrans Inizia una nuova transazione.

  • CommitTrans Salva tutte le modifiche e termina la transazione corrente. Può anche avviare una nuova transazione.

  • RollbackTrans Annulla le modifiche apportate durante la transazione corrente e termina la transazione. Può anche avviare una nuova transazione.

Sintassi

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

Valore restituito

BeginTrans può essere chiamato come funzione che restituisce una variabile Long che indica il livello di annidamento della transazione.

Parametri

object
Un oggetto Connection.

Connessione

Utilizzare questi metodi con un oggetto Connection quando si desidera salvare o annullare una serie di modifiche apportate ai dati di origine come singola unità. Ad esempio, per trasferire denaro tra conti, si sottrae un importo da uno e si aggiunge lo stesso importo all'altro. Se uno dei due aggiornamenti ha esito negativo, i conti non corrispondono più. L'esecuzione di queste modifiche all'interno di una transazione aperta garantisce che tutte o nessuna delle modifiche vengano apportate.

Nota

Non tutti i provider di database supportano le transazioni. Verificare che la proprietà definita dal provider "Transaction DDL" venga visualizzata nella raccolta Properties dell'oggetto Connection, a indicare che il provider supporta le transazioni. Se il provider non supporta le transazioni, la chiamata a uno di questi metodi restituirà un errore.

Dopo aver chiamato il metodo BeginTrans, il provider non eseguirà più il commit istantaneo delle modifiche apportate finché non viene chiamato CommitTrans o RollbackTrans per terminare la transazione.

Per i provider che supportano le transazioni annidate, la chiamata al metodo BeginTrans all'interno di una transazione aperta avvia una nuova transazione annidata. Il valore restituito indica il livello di annidamento: il valore restituito "1" indica che è stata aperta una transazione di primo livello (ovvero la transazione non è annidata all'interno di un'altra transazione), "2" indica che è stata aperta una transazione di secondo livello (una transazione annidata all'interno di una transazione di primo livello) e così via. La chiamata a CommitTrans o RollbackTrans influisce solo sulla transazione aperta più di recente; è necessario chiudere o eseguire il rollback della transazione corrente prima di poter risolvere eventuali transazioni di livello superiore.

La chiamata al metodo CommitTrans salva le modifiche apportate all'interno di una transazione aperta nella connessione e termina la transazione. La chiamata al metodo RollbackTrans inverte tutte le modifiche apportate all'interno di una transazione aperta e termina la transazione. La chiamata a uno dei due metodi quando non è presente alcuna transazione aperta genera un errore.

A seconda della proprietà Attributes dell'oggetto Connection, la chiamata ai metodi CommitTrans o RollbackTrans può avviare automaticamente una nuova transazione. Se la proprietà Attributes è impostata su adXactCommitRetaining, il provider avvia automaticamente una nuova transazione dopo una chiamata CommitTrans. Se la proprietà Attributes è impostata su adXactAbortRetaining, il provider avvia automaticamente una nuova transazione dopo una chiamata RollbackTrans.

Remote Data Service

I metodi BeginTrans, CommitTrans e RollbackTrans non sono disponibili in un oggetto Connection lato client.

Si applica a

Oggetto Connection (ADO)

Vedere anche

Esempio di metodi BeginTrans, CommitTrans e RollbackTrans (VB)
Esempio di metodi BeginTrans, CommitTrans e RollbackTrans (VC++)
Proprietà Attributes (ADO)