Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Триггеры в Interbase. [D6, XP]


Drowsy ©   (2009-11-05 01:23:00) 

Пара вопросов:
1. можно ли в триггере (в частности, в before insert) делать инсерт в другую таблицу?
2. если да, то как узнать успешно ли инсерт в ту таблицу прошёл?


Inovet   (2009-11-05 09:11:00) [1]

> [7] Sergey13 ©   (05.11.09 09:07)
> > [6] Inovet ©   (05.11.09 09:01)
> > А вот если не из своей программы а из например IBExpert
>
> Разговор вроде про тригер шел.

А, понял - в триггере надо проверить.


Sergey13   (2009-11-05 09:07:00) [2]

> [6] Inovet ©   (05.11.09 09:01)
> А вот если не из своей программы а из например IBExpert

Разговор вроде про тригер шел.


Inovet   (2009-11-05 09:01:00) [3]

> [5] Sergey13 ©   (05.11.09 08:55)
> > [4] Inovet ©   (05.11.09 08:50)
>
> Я вообще-то спрашивал автора

Ну я тоже вроде как автору подсказывал

и вел к тому, что можно заранее
> отследить/проверить критичные места.

А вот если не из своей программы а из например IBExpert, да и в своей можно запросто лажануться. Так что актуально.


Sergey13   (2009-11-05 08:55:00) [4]

> [4] Inovet ©   (05.11.09 08:50)

Я вообще-то спрашивал автора и вел к тому, что можно заранее отследить/проверить критичные места.
А теоретические причины отказов мне известны. 8-)


Inovet   (2009-11-05 08:50:00) [5]

> [1] Sergey13 ©   (05.11.09 08:19)
> И почему может не пройти инсерт?

Да мало ли причин: ПК повторяется или пустой, ФК неправильный, NOT NULL или ещё какая проверка сработала, ещё что-нибудь.


Drowsy   (2009-11-05 08:27:00) [6]

Спасибо!


Сергей М.   (2009-11-05 08:22:00) [7]

2. Неуспешный INSERT вызовет исключительную ситуацию, которую можно перехватить в WHEN-предложении.


Sergey13   (2009-11-05 08:19:00) [8]

1. Да, можно.
2. Если commit прошел (только не в теле тригера!!!), значит вставилось. И почему может не пройти инсерт?


Наверх

Титульная страница Поиск, карта сайта Написать письмо