Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Как сделать откат внутри триггера

Внутри триггера нельзя управлять транзакциями, поэтому генерируешь там исключение а откат транзакции делаешь в приложении, пославшем запрос. Естественно exception должен предварительно создан


 SET TERM !!;
 
 CREATE TRIGGER " DELETE_INV"  FOR " TINV"
     ACTIVE BEFORE DELETE
     POSITION 10
     AS
     BEGIN
         IF (EXISTS (SELECT tOst.Id FROM tOst
                     WHERE tOst.Id = tInv.Id))
         THEN
             EXCEPTION EST_OSTATOK;
     END !!
 
 SET TERM ;!!
 
 
 DBase.StartTransaction;
 try
   Query.ExecSQL;
   DBase.Commit;
 except
   DBase.Rollback;
   raise;    // Для последующей обработки
 end;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS