CDatabase::BeginTrans
Llame a esta función miembro para iniciar una transacción con el origen de datos conectado.
Sintaxis
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.
Advertencia
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.
Advertencia
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).
Vea el artículo transacción: Realizar una transacción en un conjunto de registros (ODBC).
Requisitos
encabezado: afxdb.h
Vea también
CDatabase Class
Gráfico de jerarquías
CDatabase::CommitTrans
CDatabase::Rollback
CRecordset::CanTransact