Ver Mensaje Individual
  #2  
Antiguo 25-09-2019
Avatar de gatosoft
[gatosoft] gatosoft is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Bogotá, Colombia
Posts: 833
Reputación: 22
gatosoft Va camino a la fama
No se si entiendo bien, pero si lo que quieres es trabajar transacciones desde Delphi, normalmente lo haces utilizando las opciones que te dan los componentes que estes utilizando.

en general, dependiendo d elos componenets que utilices, puedes poner tu sesion en modo transacción, con algo como

Código Delphi [-]
DatabaseComponent.StarTransacion;
Try
 //haces las operaciones que necesites con los componenets Query y/o StoreProcedure
 Procedimeinto1(...);
 Procedimeinto2(...);
 Procedimeinto3(...);
 DatabaseComponent.Commit; //todo salió bien
Except
  DatabaseComponent.Rollback; //ocurrió un error reversa todo
end;

Pero, en general los componentes de BD están en modo Autocommit, asi que cada transacción que hagas, queda aplicada y si otras fallan estas no se van a reversar.


Podrias tambien hacer commits por grupos

Código Delphi [-]
DatabaseComponent.StarTransacion;
Try
 //haces las operaciones que necesites con los componenets Query y/o StoreProcedure
 Procedimeinto1(...);
 Procedimeinto2(...);
 DatabaseComponent.Commit; //todo salió bien
Except
  DatabaseComponent.Rollback; //ocurrió un error reversa procedimientos 1 y 2
end; 

DatabaseComponent.StarTransacion;
Try
 //haces las operaciones que necesites con los componenets Query y/o StoreProcedure
 Procedimeinto3(...);
 DatabaseComponent.Commit; //todo salió bien
Except
  DatabaseComponent.Rollback; //ocurrió un error reversa procedimeinto 3
end;
Responder Con Cita