![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Триггеры в 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 прошел (только не в теле тригера!!!), значит вставилось. И почему может не пройти инсерт?