Ver Mensaje Individual
  #1  
Antiguo 03-09-2003
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Reputación: 26
guillotmarc Va por buen camino
Un fallo en un Trigger ¿ deshace la transacción ?

Hola.

Me he encontrado un caso, en el que aparentemente se han ejecutado la mitad de las instrucciones de un trigger, y no se han ejecutado (o han fallado) las ultimas.

Al necesitar todo en Firebird una transacción, imagino que al ejecutarse un Trigger se crea una transacción (o corre dentro de la transacción de la modificación de la tabla). ¿ Que ocurre si falla una instrucción en el trigger ? ¿ se echa atrás la transacción ? ¿ finaliza el trigger, pero sin cancelar la transacción ?.

¿ Alguien me puede indicar donde encontrar documentación que trate sobre el tema ?.

¿ La única forma de cancelar un cambio si no se ejecuta correctamente un trigger, es controlando una transacción desde el lado cliente ?. Algo así :

Código:
// .... Modificar el ClientDataset
Cn.BeginTrans;
try
  ClientDataset.ApplyUpdates(0);
  Cn.Commit;
except
  Cn.Rollback;
end;
Gracias.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita