Ver Mensaje Individual
  #4  
Antiguo 12-06-2010
osmuar_exp osmuar_exp is offline
Miembro
 
Registrado: ene 2008
Posts: 18
Reputación: 0
osmuar_exp Va por buen camino
Transacción

Hola, creo que ya te entendí, una vez que inicias una transacción esta no se detiene hasta que la última sentencia incluida en ella se cumpla correctamente. Puedes realizar varias consultas a la base de datos y si en alguna de ellas pasa algo, todo lo que se se haya procesado se cancela, en otras palabras "se hace por que se hace o no se hace nada",, este es el ejemplo:

Código Delphi [-]
var consulta:tadoquery;
begin
  consulta:=tadoquery.Create(self);
  consulta:=frm_md.conexion;
  frm_md.conexion.BeginTrans;
  try
    with consulta do
     begin
       close;
       sql.text:='insert into.....';
       ExecSQL;

       close;
       sql.text:='delete from....';
       ExecSQL;

       Actualizar(0,'MEX',253,1);
     end;

     frm_md.conexion.CommitTrans;
     consulta.free;
  except
  on e:exception do
     begin
       frm_md.conexion.RollbackTrans;
       showmessage('Error en la transacción de tipo '+e.Message);
       consulta.free;
       exit;
     end;
  end;

Saludos transaccionales.
Responder Con Cita