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.