Ver Mensaje Individual
  #3  
Antiguo 19-12-2011
mizzard mizzard is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 100
Reputación: 14
mizzard Va por buen camino
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!
Responder Con Cita