Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Uma transação delimita o início e o fim de uma série de operações de acesso a dados executadas em uma conexão. Sujeito aos recursos transacionais da fonte de dados, o objeto Connection também permite que você crie e gerencie transações. Por exemplo, usando o Provedor Microsoft OLE DB para SQL Server para acessar um banco de dados no Microsoft SQL Server, você pode criar várias transações aninhadas para os comandos que você executar.
O ADO garante que as alterações em uma fonte de dados resultantes de operações em uma transação ocorram juntas com êxito ou não.
Se você cancelar a transação ou se uma de suas operações falhar, o resultado será como se nenhuma das operações na transação tivesse ocorrido. A fonte de dados permanecerá como estava antes do início da transação.
O ADO fornece os seguintes métodos para controlar transações: BeginTrans, CommitTrans e RollbackTrans. 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.
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 o método 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 .
Nível de Isolamento de Transação
Use a propriedade IsolationLevel para definir o nível de isolamento de uma transação em um objeto Connection . A configuração não terá efeito até a próxima vez que você chamar o método BeginTrans. Se o nível de isolamento solicitado não estiver disponível, o provedor poderá retornar o próximo nível maior de isolamento. Consulte a propriedade IsolationLevel na Referência do Programador do ADO para obter mais detalhes sobre valores válidos.
Transações aninhadas
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.