Partilhar via


Transação (ODBC)

Este tópico se aplica a classes MFC ODBC.

Uma transação é uma maneira de agrupar ou lote, uma série de atualizações para um fonte de dados para que todos são confirmados ao mesmo tempo ou nenhum está comprometida se você reverter a transação.Se você não usar uma transação, alterações feitas a fonte de dados são confirmadas automaticamente em vez de serem submetidos sob demanda.

Observação:

Nem todos os drivers de banco de dados ODBC suporte a transações.Ligue o CanTransact função de membro de seu CDatabase or CRecordset objeto para determinar se o driver oferece suporte a transações para um banco de dados especificado.Observe que CanTransact não informa se a fonte de dados fornece suporte a transações completo. Você também deve chamar CDatabase::GetCursorCommitBehavior e CDatabase::GetCursorRollbackBehavior Depois de CommitTrans and Reversão para verificar o efeito da transação no em abertoCRecordset objeto.

s telefonar à AddNew e edição funções de membro de um CRecordset objeto afetam a fonte de dados imediatamente quando você telefonar Atualização.Excluir chamadas também têm efeito imediatamente.Por outro lado, você pode usar uma transação consiste em várias chamadas para AddNew, edição, Atualização, and Excluir, que são executadas, mas não confirmados até telefonar CommitTrans explicitamente.Estabelecendo uma transação, você pode executar uma série de tais chamadas mantendo a capacidade de revertê-los.Se um recurso crítico não estiver disponível ou alguma Outros condição impede que a transação inteira seja concluída, você pode reverter a transação em vez de confirmá-lo.Nesse caso, nenhuma das alterações que pertencem a transação afetam a fonte de dados.

Observação:

Atualmente, classe CRecordset não oferece suporte a atualizações para a fonte de dados se você implementou a busca de linha em massa. Isso significa que você não pode fazer chamadas para AddNew, edição, Excluir, or Atualização.No entanto, você pode escrever funções próprias para executar atualizações e, em seguida, chame essas funções em uma determinada transação.Para obter mais informações sobre buscar a linha em massa, consulte conjunto de registros: Buscando os registros em massa (ODBC).

Observação:

Além de afetar seu conjunto de registros, sistema autônomo transações afetam instruções SQL que você executa diretamente, desde que você usar o ODBC HDBC associado com o seu CDatabase objeto ou um ODBC HSTMT com base em que HDBC.

As transações são especialmente úteis quando você tem vários registros que devem ser atualizados simultaneamente.Nesse caso, você deseja evitar uma transação foi concluída pela metade, tais sistema autônomo pode acontecer se uma exceção foi lançada antes que a última atualização foi feita.Agrupar essas atualizações em uma transação permite uma recuperação (reversão) das alterações e retorna os registros para o estado pretransaction.Por exemplo, se um banco transfere money da conta A conta de B, tanto a retirada do depósito A e b deve ter êxito ao processar corretamente os fundos ou toda a transação deve falhar.

As classes de banco de dados, você realizar transações através de CDatabase objetos. A CDatabase objeto representa uma conexão a uma fonte de dados e um ou mais conjuntos de registros associados que CDatabase objeto operam nas tabelas do banco de dados por meio das funções de membro do conjunto de registros.

Observação:

Há suporte para apenas um nível de transações.Não é possível aninhar transações nem uma transação pode abranger vários objetos de banco de dados.

Os tópicos a seguir fornecem mais informações sobre como as transações são realizadas:

Consulte também

Conceitos

Open Database Connectivity (ODBC)