Compartilhar via


CDatabase::BeginTrans

Chamar essa função de membro para iniciar uma transação com a fonte de dados conectados.

BOOL BeginTrans( );

Valor de retorno

Diferente de zero se a chamada foi bem-sucedida e alterações são confirmados somente; manualmente se não 0.

Comentários

Uma transação consiste em um ou mais chamadas a AddNew, Editar, Excluir, e as funções de membro de Atualizar de CRecordset objeto. Antes de iniciar uma transação, o objeto de CDatabase já deve ter sido conectado à fonte de dados chamando a função de membro de OpenEx ou de Abrir . Para finalizar a transação, chame CommitTrans para aceitar alterações para a fonte de dados (e as para levar para fora) ou chamar Rollback como nulo a transação inteira. Chamada BeginTrans depois de abrir todos os conjuntos de registros envolvidos na transação e então feche a operações de atualização atuais quanto possível.

Aviso

Dependendo do driver ODBC, abra um conjunto de registros antes de chamar BeginTrans pode causar problemas ao chamar Rollback.Você deve verificar o driver específico que você está usando.Por exemplo, ao usar o driver Microsoft Access incluído no bloco 3,0 do driver da área de trabalho do Microsoft ODBC, você deve considerar o requisito do mecanismo de banco de dados de Jet que você não deve iniciar uma transação em qualquer banco de dados que possui um cursor aberto.Classes de banco de dados MFC, um cursor aberto significa um objeto de abertura de CRecordset .Para obter mais informações, consulte Observe técnica 68.

BeginTrans também pode bloquear registros de dados no servidor, dependendo de concorrência solicitada e os recursos de fonte de dados. Para obter informações sobre dados de bloqueio, consulte o artigo conjunto de registros: Bloqueando registros (ODBC).

As transações definidos pelo usuário são explicadas no artigo transação (ODBC).

BeginTrans estabelece o estado em que a seqüência de transações pode ser revertida (invertida). Para estabelecer um novo estado para reversões, confirmar todas a transação atual, então chamada BeginTrans novamente.

Aviso

A chamada BeginTrans novamente sem chamar CommitTrans ou Rollback é um erro.

Chame a função de membro de CanTransact para determinar se o driver oferece suporte a transações para um determinado banco de dados. Você também deve chamar GetCursorCommitBehavior e GetCursorRollbackBehavior para determinar o suporte a preservação do cursor.

Para obter mais informações sobre transações, consulte o artigo transação (ODBC).

Exemplo

Consulte o artigo transação: Executando uma transação em um conjunto de registros (ODBC).

Requisitos

Cabeçalho: afxdb.h

Consulte também

Referência

Classe incorporadas

Gráfico da hierarquia

CDatabase::CommitTrans

CDatabase::Rollback

CRecordset::CanTransact