Compartilhar via


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. Ele também pode iniciar uma nova transação.

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

Sintaxe

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

Valor de retorno

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

objeto
Um objeto de Conexão.

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 única 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 não estarão mais balanceadas. 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 "DDL de Transação" aparece na coleção Propriedades do objeto Connection, indicando que o provedor dá suporte a transações. Se o provedor não der suporte a transações, chamar um desses métodos retornará um erro.

Depois de chamar o 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 provedores que dão suporte a transações aninhadas, chamar o 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 de "1" indica que você abriu uma transação de nível superior (ou seja, a transação não está aninhada em outra transação), "2" indica que você abriu uma transação de segundo nível (uma transação aninhada em uma transação de nível superior) e assim por diante. Chamar CommitTrans ou RollbackTrans afeta apenas a transação aberta mais recentemente; você deve fechar ou reverter a transação atual antes de resolver transações de nível superior.

Chamar o método CommitTrans salva as alterações feitas em uma transação aberta na conexão e encerra a transação. Chamar o método RollbackTrans reverte todas as alterações feitas em uma transação aberta e encerra a transação. Chamar qualquer um dos métodos quando não houver nenhuma transação aberta gera um erro.

Dependendo da propriedade Atributos do objeto Connection, chamar os 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 commitTrans . Se a propriedade Attributes estiver definida como adXactAbortRetaining, o provedor iniciará automaticamente uma nova transação após uma chamada 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 de Conexão (ADO)

Consulte Também

exemplo dos métodos BeginTrans, CommitTrans e RollbackTrans (VB)
Exemplo dos métodos BeginTrans, CommitTrans e RollbackTrans (VC++)
propriedade Attributes (ADO)