Share via


CDatabase::BeginTrans

Llame a esta función miembro para iniciar una transacción con el origen de datos conectado.

BOOL BeginTrans( );

Valor devuelto

Distinto de cero si la llamada se realizó y los cambios se confirman sólo manualmente; si no 0.

Comentarios

Una transacción se compone de una o más llamadas a AddNew, Editar, Eliminar, y las funciones miembro de Actualizar de CRecordset se oponen.Antes de iniciar una transacción, el objeto de CDatabase debe estar ya conectada al origen de datos llamando a la función de OpenEx o miembro de Open .Para finalizar la transacción, llame a CommitTrans para aceptar todos los cambios realizados en el origen de datos (y llevarlos a cabo) o llamar a Revertir para anular la transacción completa.Llamada BeginTrans después de abrir cualquier conjunto de registros implicado en la transacción y lo más cercano a las operaciones de actualización reales posible.

Nota de precauciónPrecaución

Dependiendo del controlador ODBC, abrir un conjunto de registros antes de llamar a BeginTrans puede causar problemas al llamar a Revertir.Debe comprobar el controlador específico que está usando.Por ejemplo, al utilizar el controlador de Microsoft Access incluido en el controlador de escritorio Pack 3,0 de Microsoft ODBC, debe explicar el requisito del motor de base de datos de Jet que no debe iniciar una transacción en ninguna base de datos que tiene el cursor abierto.En las clases de base de datos de MFC, el cursor abierto significa un objeto abierto de CRecordset .Para obtener más información, vea nota técnica 68.

BeginTrans también puede bloquear registros de datos en el servidor, dependiendo de simultaneidad solicitada y las funciones del origen de datos.Para obtener información sobre datos de bloqueo, vea el artículo conjunto de registros: Bloquear registros (ODBC).

Las transacciones definidas por el usuario se explican en el caso transacción (ODBC).

BeginTrans establece el estado en el que la secuencia de transacciones puede revertirse (invertida).Para establecer un nuevo estado para recupera, confirmar cualquier transacción actual, una llamada BeginTrans de nuevo.

Nota de precauciónPrecaución

Si se llama de nuevo a BeginTrans sin llamar a CommitTrans o Rollback, se produce un error.

Llame a la función miembro de CanTransact para determinar si el controlador admite las transacciones para una base de datos especificada.También debe llamar a GetCursorCommitBehavior y GetCursorRollbackBehavior para determinar la compatibilidad para la conservación del cursor.

Para obtener más información sobre transacciones, vea el artículo transacción (ODBC).

Ejemplo

Vea el artículo transacción: Realizar una transacción en un conjunto de registros (ODBC).

Requisitos

encabezado: afxdb.h

Vea también

Referencia

Clase CDatabase

Gráfico de jerarquía

CDatabase::CommitTrans

CDatabase::Rollback

CRecordset::CanTransact