Ver Mensaje Individual
  #6  
Antiguo 19-12-2011
mizzard mizzard is offline
Miembro
NULL
 
Registrado: feb 2011
Posts: 100
Reputación: 14
mizzard Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola mizzard.

No entiendo bién eso último, ¿ es decir que no te funciona si haces ?
Código:
void __fastcall TForm1::btnDeshacerClick(TObject *Sender)
{
  frmPrincipal->DBConnectionTiMesDB->RollbackTrans();
}
Un saludo.

Hola, el caso es q haciendo pruebas intenté eso mismo y no funcionaba y debugeando código llegue a la siguiente conclusion:

Basandonos en el trozo q he puesto con try y catch si se produce algun error (no llega a ejecutarse el CommitTrans) por lo que el RollbackTrans sí que funciona. Si todo se efectua correctamente (se ejecuta todo el codigo del try incluyendo el commitTrans -> que es cuando se llevan a cabo todas las modificaciones en la base de datos) si luego intentas ejecutar el RollbackTrans, el compilador da error de que no existe ninguna transaccion abierta (Ya que se ha validado todo con el CommitTrans).

Mmm, no se si me he explicado del todo bien, pero básicamente en el momento que se ejecuta el CommitTrans y se actualiza todo no consigo ver la forma de deshacer los cambios.


Un saludo!
Responder Con Cita