Suporte a transações OLE DB
A transação é uma maneira de grupo ou lote, uma série de atualizações para uma fonte de dados para que todos êxito e são confirmados por vez ou (se qualquer uma delas falhar) nenhum são confirmadas e a transação inteira é revertida.Esse processo garante a integridade do resultado na fonte de dados.
Banco de dados OLE oferece suporte a transações com três métodos a seguir:
Relação de sessões e transações
Um objeto de fonte de dados pode criar um ou mais objetos de sessão, cada qual pode estar dentro ou fora do escopo de uma transação em um determinado momento.
Quando uma sessão não inserir uma transação, todo o trabalho feito dentro dessa sessão no armazenamento de dados é confirmado imediatamente em cada chamada de método.(Isso é às vezes chamado como modo de confirmação automática ou implícita.)
Quando uma sessão insere uma transação, todo o trabalho feito dentro dessa sessão no armazenamento de dados é parte daquela transação e é confirmado ou anulado como uma única unidade.(Isso é às vezes chamado como modo de confirmação manual.)
Suporte de transação é específica ao provedor.Se o provedor que você está usando oferece suporte a transações, um objeto de sessão que suporta ITransaction e ITransactionLocal pode inserir um simples (isto é, não aninhados) transação.A classe OLE DB modelos CSession oferece suporte a essas interfaces e é a maneira recomendada para implementar o suporte a transações no Visual C++.
Inicial e final da transação
Chamar o StartTransaction, Confirmar, e anular métodos do objeto de conjunto de linhas no consumidor.
Chamando ITransactionLocal::StartTransaction inicia uma nova transação local.Ao iniciar a transação, quaisquer alterações exigidas por operações subseqüentes não são realmente aplicadas ao armazenamento de dados até que você confirme a transação.
Chamando ITransaction:: Commit ou ITransaction:: Abort termina a transação.Confirmar faz com que todas as alterações no escopo da transação a ser aplicado no armazenamento de dados.Anular faz com que todas as alterações dentro do escopo de transação a ser cancelada e o armazenamento de dados é deixada no estado que ele tinha antes de iniciar a transação.
Transações aninhadas
A transação aninhada ocorre quando você iniciar uma nova transação local quando uma transação ativa já existe na sessão.A nova transação é iniciada como uma transação aninhada abaixo da transação atual.Se o provedor não dá 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, os dados em mais de um sistema de computador em rede.Se você quiser suportar transações através de um sistema distribuído, você deve usar o.NET Framework em vez do suporte a transações OLE DB.