Compartir a través de


Métodos BeginTrans, CommitTrans y RollbackTrans (ADO)

Se aplica a: Access 2013, Office 2013

Estos métodos de transacción administran el procesamiento de las transacciones en un objeto Connection de la siguiente manera:

  • BeginTrans: inicia una transacción nueva.

  • CommitTrans: guarda los cambios y termina la transacción actual. También puede iniciar una transacción nueva.

  • RollbackTrans: cancela los cambios realizados durante la transacción actual y termina la transacción. También puede iniciar una transacción nueva.

Sintaxis

Nivel = objeto . BeginTrans()

objeto . Begintrans

objeto . CommitTrans

objeto . RollbackTrans

Valor devuelto

Al método BeginTrans se le puede llamar como una función que devuelve una variable Long que indica el nivel de anidamiento de la transacción.

Parámetros

Parámetro Descripción
objeto Objeto Connection.

Connection

Utilice estos métodos con un objeto Connection cuando desee guardar o cancelar una serie de cambios realizados en los datos de origen como una sola unidad. Por ejemplo, para transferir dinero entre cuentas, se resta una cantidad de una de las cuentas y se suma la misma cantidad a la otra. Si alguna de las actualizaciones no se realiza correctamente, las cuentas ya no están equilibradas. Si se realizan estos cambios en una transacción abierta, se garantiza que se llevan a cabo todos los cambios, o bien, que no se lleva a cabo ninguno de los cambios.

Nota:

[!NOTA] No todos los proveedores admiten transacciones. Compruebe que la propiedad definida por el proveedor Transaction DDL aparece en la colección Properties del objeto Connection, lo que indica que el proveedor admite transacciones. Si el proveedor no las admite y se llama a uno de estos métodos, se devolverá un error.

Tras llamarse al método BeginTrans, el proveedor ya no confirmará instantáneamente los cambios realizados hasta que se llame a CommitTrans o a RollbackTrans para finalizar la transacción.

En el caso de los proveedores que admiten transacciones anidadas, al llamar al método BeginTrans dentro de una transacción abierta se inicia una nueva transacción anidada. El valor devuelto indica el nivel de anidamiento: un valor devuelto de "1" indica que ha abierto una transacción de nivel superior (es decir, que la transacción no está anidada dentro de otra transacción), "2" indica que ha abierto una transacción de segundo nivel (una transacción anidada dentro de una transacción de nivel superior), etc. Llamar a CommitTrans o RollbackTrans afecta solo a la transacción abierta más recientemente; debe cerrar o revertir la transacción actual para poder resolver las transacciones de nivel superior.

Si se llama al método CommitTrans, se guardan los cambios realizados en una transacción abierta en la conexión y finaliza la transacción. Si se llama al método RollbackTrans, se deshacen los cambios realizados en una transacción abierta y finaliza la transacción. Si se llama a cualquiera de los métodos cuando no hay ninguna transacción abierta, se genera un error.

Dependiendo de la propiedad Attributes del objeto Connection, una llamada al método CommitTrans o RollbackTrans puede iniciar automáticamente una transacción nueva. Si el valor de la propiedad Attributes es adXactCommitRetaining, el proveedor inicia automáticamente una transacción nueva después de una llamada a CommitTrans. Si el valor de la propiedad Attributes es adXactAbortRetaining, el proveedor inicia automáticamente una transacción nueva después de una llamada a RollbackTrans.

Servicio de datos remotos (RDS)

Los métodos BeginTrans, CommitTrans y RollbackTrans no están disponibles en un objeto Connection de cliente.