Compartilhar via


Dando suporte a transações em banco de dados OLE

transação é uma maneira de clustering, ou o lote, uma série de atualizações em uma fonte de dados para que todos tenham êxito e foram confirmados imediatamente ou se qualquer um deless (falha) não são confirmadas e a transação inteira será revertida. Esse processo garante a integridade de resultado na fonte de dados.

O OLE DB da suporte a transações com os seguintes métodos:

Relação das sessões e transações

Um único objeto de fonte de dados pode criar um ou mais objetos de sessão, que podem estar dentro ou fora do escopo de uma transação de em um determinado momento.

Quando uma sessão não insere uma transação, todos funcionam feito nessa sessão no repositório de dados são confirmados imediatamente em cada chamada de método. (Isso às vezes é referenciado como o modo de confirmação automática ou o modo implícito.)

Quando uma sessão inserir uma transação, todos funcionam feito nessa sessão no repositório de dados fazem parte da transação e são confirmados ou cancelada como uma única unidade. (Isso às vezes é referenciado como o modo de confirmação manual).

O suporte a transações é específica do provedor. Se você estiver usando o provedor da suporte a transações, um objeto de sessão que oferece suporte ITransaction e ITransactionLocal pode inserir (isto é, não aninhado) uma transação simples. A classe CSession de modelos OLE DB oferecer suporte a essas interfaces e é recomendado para implementar o suporte a transações no Visual C++.

Iniciando e terminando a transação

Chame StartTransaction, Confirmar, e os métodos de Anular no conjunto de linhas object no consumidor.

A chamada ITransactionLocal::StartTransaction inicia uma nova transação local. Quando você iniciar a transação, todas as alterações designada por operações subsequentes não estão realmente aplicadas ao repositório de dados até que você confirme a transação.

A chamada ITransaction::Commit ou ITransaction::Abort finalizar a transação. Confirmar faz com que todas as alterações no escopo da transação a ser aplicada ao repositório de dados. Anular faz com que todas as alterações no escopo da transação seja cancelada e o repositório de dados foi deixado no estado que tinha antes que a transação foi iniciada.

Transações aninhadas

transação aninhada ocorre quando você inicia uma nova transação local quando uma transação ativa já existir na sessão. A nova transação é iniciada como uma transação aninhada abaixo da transação atual. Se o provedor não oferecer suporte a transações aninhadas, chamando StartTransaction quando já houver uma transação ativa na sessão retorna XACT_E_XTIONEXISTS.

Transações distribuídas

Uma transação distribuída é uma transação que atualiza dados distribuídos; ou seja, dados em mais de um sistema de computador conectado. Se você quiser oferecer suporte a transações sobre um sistema distribuído, você deve usar o .NET Framework em vez da suporte a transações do OLE DB.

Consulte também

Conceitos

Usando acessadores