Hola, hasta donde tengo entendido eso es para poder realizar varios cambios con ADOCommand como si fuera uno único y si alguno de ellos da error, se cancelan todos. Para ello se sigue la siguiente estructura:
Código:
frmPrincipal->DBConnectionTiMesDB->BeginTrans();
try{
strSQL = "UPDATE Digitalizado SET FechaOut = " + fecha + ", HoraOut= " + hora + " WHERE Id= " + frmPrincipal->DBtxtContador->Caption;
frmPrincipal->cmdTiMes->CommandText = strSQL;
frmPrincipal->cmdTiMes->Execute();
// Restamos las fechas para calcular el tiempo de proceso
resultadoProceso = restarFechas();
// Metemos el resultado en la base de datos
strSQL = "UPDATE Digitalizado SET TiempoTotal = " + resultadoProceso + " WHERE Id= " + frmPrincipal->DBtxtContador->Caption;
frmPrincipal->cmdTiMes->CommandText = strSQL;
frmPrincipal->cmdTiMes->Execute();
frmPrincipal->DBConnectionTiMesDB->CommitTrans();
}
catch(...){
frmPrincipal->DBConnectionTiMesDB->RollbackTrans();
}
Yo lo que quisiera es mediante un boton cancelar la operación realizada (y se supone que exitosa).
Otra duda que me surge es como probar si el rollbackTrans que he implementado funciona o no. He probado a provocar un error en el segundo command (cambiando un TiempoTotal por TiemoTotal) y me salta un error en access pero no salta el catch ni se activa el rollback.
Ideas??
Muchas gracias y un abrazo!