|
|
|
Странное поведение триггера
|
|||
|---|---|---|---|
|
#18+
Зравствуйте все!! Тут наткнулся на необычную для меня штуку в поведении триггера а именно Простейший пример: Создадим произвольную базу данных Создадим 3 таблицы с 1 полем сделаем ему primary key добавим по одной одинаковой записи в каждую из таблиц Table1 свяжем с Table2 Table2 свяжем с Table3 На отношение Table1-> Table2 создадим триггер на удаление Cascade На отношение Table2-> Table3 создадим триггер на удаление Restrict Теперь все сохраним выйдем и зайдем ;)) Теперь же при попытке удаления записи из 1 таблицы триггер не заругается на то что в 3 таблице есть такая же запись что и во 2-ой, а спокойно удалит запись из 1 таблицы и Cascade со 2-ой таблицей не сработает. Как же так? (P.S эта проблема решается если прeдварительно делать use table2) Что ошибка в генераторе trigger procedur? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2007, 20:55 |
|
||
|
Странное поведение триггера
|
|||
|---|---|---|---|
|
#18+
VFP9SP1 - выдает сообщение об ошибке триггера. Все как положено. Никаких глюков ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2007, 22:16 |
|
||
|
Странное поведение триггера
|
|||
|---|---|---|---|
|
#18+
Проверьте, а был ли создан триггер на вторую таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.01.2007, 22:31 |
|
||
|
Странное поведение триггера
|
|||
|---|---|---|---|
|
#18+
VFP 7.0 все триггеры работают нормально ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2007, 10:26 |
|
||
|
Странное поведение триггера
|
|||
|---|---|---|---|
|
#18+
А в таких условиях каких я описал нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2007, 10:27 |
|
||
|
Странное поведение триггера
|
|||
|---|---|---|---|
|
#18+
Включай отладчик (он в триггера тоже заходит) и смотри, почему у тебя триггер на Restrict не отрабатывает. У меня нет 7 версии, поэтому воспроизвести проблему не могу. Насколько я помню, в триггерах на Referential Integrity были глюки. Но вроде бы связанные с блокировкой. Там была некорректная строка при указании рабочей области. Сейчас точно не помню, но что-то вроде UNLOCK ... IN lcNewWkArea Так вот, надо было взять имя переменной в круглые скобки, т.е. написать UNLOCK ... IN (lcNewWkArea) Посмотри, может как раз на этой команде триггер "слетает" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2007, 23:10 |
|
||
|
Странное поведение триггера
|
|||
|---|---|---|---|
|
#18+
Вот нашел. http://www.sql.ru/forum/actualthread.aspx?tid=242155#2147944 Правда это глюк VFP9 для младших версий такой строки нет. Но, все-равно, пройдись отладчиком. Похоже где-то тебя просто выбрасывает из триггера по ошибке. Что успел изменить, то успел. Хотя, не должно было такого быть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2007, 23:14 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=34236246&tid=1590069]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 341ms |

| 0 / 0 |
