Compartir a través de


Métodos BeginTrans, CommitTrans y RollbackTrans (ADO)

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

  • BeginTrans Inicia una transacción nueva.

  • CommitTrans Guarda los cambios y finaliza la transacción actual. También puede iniciar una nueva transacción.

  • RollbackTrans Cancela los cambios realizados durante la transacción actual y finaliza la transacción. También puede iniciar una nueva transacción.

Sintaxis

  
level = object.BeginTrans()  
object.BeginTrans  
object.CommitTrans  
object.RollbackTrans  

Valor devuelto

Se puede llamar a BeginTrans como una función que devuelve una variable Long que indica el nivel de anidamiento de la transacción.

Parámetros

object
Un objeto Connection.

Conexión

Use 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, resta una cantidad de una cuenta y agrega la misma cantidad a la otra. Si se produce un error en alguna actualización, las cuentas ya no estarán compensadas. Realizar estos cambios dentro de una transacción abierta garantiza que todos o ninguno de los cambios tengan lugar.

Nota

No todos los proveedores de bases de datos admiten transacciones. Compruebe que la propiedad definida por el proveedor "Transaction DDL" aparezca en la colección Properties del objeto Connection, lo que indica que el proveedor admite transacciones. Si el proveedor no admite transacciones y llama a uno de estos métodos, aparecerá un error.

Después de llamar al método BeginTrans, el proveedor ya no confirmará instantáneamente los cambios que realice hasta que llame a CommitTrans o RollbackTrans para finalizar la transacción.

Para los proveedores que admiten transacciones anidadas, llamar al método BeginTrans dentro de una transacción abierta inicia una nueva transacción anidada. El valor devuelto indica el nivel de anidamiento: un valor de "1" indica que ha abierto una transacción de nivel superior (es decir, 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. La llamada 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.

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

Según la propiedad Attributes del objeto Connection, al llamar a los métodos CommitTrans o RollbackTrans, se puede iniciar automáticamente una nueva transacción. Si la propiedad Attributes se establece en adXactCommitRetaining, el proveedor inicia automáticamente una nueva transacción después de una llamada de CommitTrans. Si la propiedad Attributes se establece en adXactAbortRetaining, el proveedor inicia automáticamente una nueva transacción después de una llamada de RollbackTrans.

Servicio de datos remotos

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

Se aplica a

Objeto de conexión (ADO)

Consulte también

Ejemplo de métodos BeginTrans, CommitTrans y RollbackTrans (VB)
Ejemplo de métodos BeginTrans, CommitTrans y RollbackTrans (VC++)
Propiedad Attributes (ADO)