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

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

Ссылочная целостность [D5, D6, IB6.x]


Johnmen ©   (2002-11-26 12:57:00) 

Любопытное наблюдение (сделанное для IB6, хотя для других клонов, думаю, что так же) :
Созданный констрейнт FK с указанием каскадного удаления начинает обслуживаться системным триггером AFTER DELETE.
Вопрос - почему же по умолчанию он, триггер, именно AFTER, а не BEFORE ? Может в этом есть некий глубокий смысл ?
А то получается, что мой триггер на B/A DELETE для детальной таблицы, учитывающий соответствующую мастер запись не работает как надо, естественно, т.к. она уже удалена на этот момент :).
Простой выход из ситуации прост - переопределить системный триггер на AFTER DELETE. Но вопрос (см.выше) остался...


Alexandr   (2002-11-27 07:48:00) [1]

не доверяю я этим системным триггерам.
поэтому никаких check, default, delete cascade, вычисляемых полей и прочих.
То их не изменишь, то они глючат, то они восстанавливаться из бакупа не хотят...

Только триггеры.


Johnmen   (2002-11-26 17:02:00) [2]

>petr_v_a © (26.11.02 16:48)

Логично, черт возьми ! Благодарю !
Резюме - либо мастер видит детали, либо наоборот. Третьего, понятно, не дано...


petr_v_a   (2002-11-26 16:48:00) [3]

Скорее всего, чтобы Ваш триггер B/А DELETE на мастер-таблице видел записи в детальной


Наверх

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