Métodos BeginTrans, CommitTrans e RollbackTrans (ADO)

Esses métodos de transação gerenciam o processamento de transações em um objeto Connection da seguinte maneira:

  • BeginTrans Inicia uma nova transação.

  • CommitTrans Salva as alterações e encerra a transação atual. Também pode iniciar uma nova transação.

  • RollbackTrans Cancela as alterações feitas durante a transação atual e encerra a transação. Também pode iniciar uma nova transação.

Sintaxe

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

Valor retornado

BeginTrans pode ser chamado como uma função que retorna uma variável Long indicando o nível de aninhamento da transação.

Parâmetros

object
Um objeto Connection.

Conexão

Use esses métodos com um objeto Connection quando quiser salvar ou cancelar uma série de alterações feitas nos dados de origem como uma só unidade. Por exemplo, para transferir dinheiro entre contas, você subtrai um valor de uma e adiciona o mesmo valor à outra. Se uma das atualizações falhar, as contas deixarão de exibir o saldo. Fazer essas alterações em uma transação aberta garante que todas ou nenhuma das alterações sejam feitas.

Observação

Nem todos os provedores dão suporte a transações. Verifique se a propriedade definida pelo provedor "Transaction DDL" é exibida na coleção Properties do objeto Connection, indicando que o provedor dá suporte a transações. Se o provedor não der suporte a transações, a chamada a um desses métodos retornará um erro.

Após a chamada ao método BeginTrans, o provedor não confirmará mais instantaneamente as alterações feitas até que você chame CommitTrans ou RollbackTrans para encerrar a transação.

Para os provedores que dão suporte a transações aninhadas, a chamada ao método BeginTrans em uma transação aberta inicia uma nova transação aninhada. O valor retornado indica o nível de aninhamento: um valor retornado igual a "1" indica que você abriu uma transação de nível superior (ou seja, a transação não está aninhada dentro de outra transação) e "2" indica que você abriu uma transação de segundo nível (uma transação aninhada dentro de uma transação de nível superior) etc. Uma chamada a CommitTrans ou a RollbackTrans afeta apenas a transação aberta mais recentemente. Você precisa fechar ou reverter a transação atual para resolver qualquer transação de nível superior.

A chamada ao método CommitTrans salva as alterações feitas em uma transação aberta na conexão e encerra a transação. A chamada ao método RollbackTrans reverte todas as alterações feitas em uma transação aberta e encerra a transação. A chamada de qualquer método quando não há nenhuma transação aberta gera um erro.

Dependendo da propriedade Attributes do objeto Connection, a chamada aos métodos CommitTrans ou RollbackTrans pode iniciar automaticamente uma nova transação. Se a propriedade Attributes estiver definida como adXactCommitRetaining, o provedor iniciará automaticamente uma nova transação após uma chamada a CommitTrans. Se a propriedade Attributes estiver definida como adXactAbortRetaining, o provedor iniciará automaticamente uma nova transação após uma chamada a RollbackTrans.

Serviço de Dados Remotos

Os métodos BeginTrans, CommitTrans e RollbackTrans não estão disponíveis em um objeto Connection do lado do cliente.

Aplica-se A

Objeto Connection (ADO)

Consulte Também

Exemplo de métodos BeginTrans, CommitTrans e RollbackTrans (VB)
Exemplo de métodos BeginTrans, CommitTrans e RollbackTrans (VC++)
Propriedade Attributes (ADO)