Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  408

•  TDictionary Custom Sort  3 531

•  Fast Watermark Sources  3 270

•  3D Designer  5 034

•  Sik Screen Capture  3 528

•  Patch Maker  3 735

•  Айболит (remote control)  3 939

•  ListBox Drag & Drop  3 190

•  Доска для игры Реверси  83 092

•  Графические эффекты  4 152

•  Рисование по маске  3 421

•  Перетаскивание изображений  2 795

•  Canvas Drawing  2 957

•  Рисование Луны  2 745

•  Поворот изображения  2 369

•  Рисование стержней  2 241

•  Paint on Shape  1 642

•  Генератор кроссвордов  2 326

•  Головоломка Paletto  1 833

•  Теорема Монжа об окружностях  2 350

•  Пазл Numbrix  1 726

•  Заборы и коммивояжеры  2 108

•  Игра HIP  1 319

•  Игра Go (Го)  1 273

•  Симулятор лифта  1 519

•  Программа укладки плитки  1 264

•  Генератор лабиринта  1 596

•  Проверка числового ввода  1 409

•  HEX View  1 554

•  Физический маятник  1 396

 
скрыть


Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

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



Внутри триггера нельзя управлять транзакциями, поэтому генерируешь там исключение а откат транзакции делаешь в приложении, пославшем запрос. Естественно 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;





Похожие по теме исходники

Текст внутри файла




Copyright © 2004-2024 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте