CDatabase::BeginTrans

BOOL BeginTrans ( );

Valor devuelto

Distinto de cero si la llamada fue exitosa y los cambios están comprometidos sólo manualmente; caso contrario 0.

Observaciones

Llame a esta función miembro para comenzar una transacción con el origen de datos conectado. Una transacción consiste en una o más llamadas a las funciones miembro AddNew, Editar, Eliminary Actualizar de un objeto CRecordset . Antes de comenzar una transacción, el objeto CDatabase debe ya se han conectado a la fuente de datos llamando a su función miembro OpenEx o abierto . Para finalizar la transacción, llame CommitTrans para aceptar todos los cambios en el origen de datos (y llevar) o a Deshacer para cancelar la transacción completa. Llamada BeginTrans después de abrir los registros involucrados en la transacción como cerca a las operaciones y actualización posible.

Precaució&nnbsp;  Dependiendo de su controlador ODBC, abrir un objeto recordset antes de llamar a BeginTrans puede causar problemas cuando se llama a Rollback. Debe comprobar el controlador específico que se está utilizando. Por ejemplo, cuando se utiliza el controlador de Microsoft Access incluido en Microsoft ODBC Desktop Driver Pack 3.0, debe tener en cuenta requisitos del motor de base de datos Jet que no debería comenzar una transacción en cualquier base de datos que tiene un cursor abierto. En las clases de base de datos MFC, un cursor abierto significa un objeto CRecordset abierto. Para obtener más información, vea 68 de nota técnica.

BeginTrans también puede bloquear registros de datos en el servidor, dependiendo de la concurrencia solicitada y la capacidad de la fuente de datos. Para obtener información acerca de bloqueo de datos, consulte el artículo Recordset: bloqueo de registros (ODBC) en la Guía del programador de Visual C++.

Transacciones definidas por el usuario se explicaron en el artículo Transacción (ODBC) en la Guía del programador de Visual C++.

BeginTrans establece el Estado para que la secuencia de las transacciones se puede deshacer (invertido). Para establecer un nuevo Estado para deshacer, cometer cualquier transacción actual y, a continuación, llame de nuevo BeginTrans.

! ADVERTE&NCIAnbsp;  Llamar a BeginTrans nuevamente sin llamar a CommitTrans o Rollback es un error.

Llame a la función de miembro de CanTransact para determinar si el controlador admite transacciones de una base de datos dada. También debe llamar a GetCursorCommitBehavior y GetCursorRollbackBehavior para determinar el apoyo para la preservación de cursor.

Para obtener más información acerca de las transacciones, consulte el artículo Transacción (ODBC) en la Guía del programador de Visual C++.

Ejemplo

Consulte el artículo transacción: realizar una transacción en un conjunto de registros (ODBC) en la Guía del programador de Visual C++.

Visió&n General de CDatabase |nbsp; Miembros de clase | Diagrama de jerarquía

Vea tambié&nnbsp;CDatabase::CommitTrans, CDatabase::Rollback, CRecordset::CanTransact

Index