|
|
|
Разобраться с тригером
|
|||
|---|---|---|---|
|
#18+
Помогите разобраться с такой проблемой: Создал тригер на изменение, примерно такого вида: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Посмотрел, это ошибка 'Trigger failed in "cursor". (Error 1539)' 1) Как самостоятельно создать сообщение ( таблица не буферизирована и буферизировать ее я не собираюсь), через ON Error ловить ? 2) Что нужно делать, если получиться съэмулировать сообщение фокса, чтобы выполнить те же действия что делает фокс по нажатию на кнопки ОК и Revert в окне сообщении об ошибке тригера ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2005, 12:31:39 |
|
||
|
Разобраться с тригером
|
|||
|---|---|---|---|
|
#18+
piki_pikiСоздал тригер на изменение, примерно такого вида: ... При выполнениии этого условия сам фокс светит мне сообщение triger failed in TLinks: Посмотрел, это ошибка 'Trigger failed in "cursor". (Error 1539)' 1) Как самостоятельно создать сообщение ( таблица не буферизирована и буферизировать ее я не собираюсь), через ON Error ловить ? Да. Без вариантов (ну, или TRY...CATCH, что, по сути, то же самое). Альтернатива - только буферизация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2005, 12:58:48 |
|
||
|
Разобраться с тригером
|
|||
|---|---|---|---|
|
#18+
А у меня вьюха на эту таблицу буферизованная. Смысла нет еще и таблицу буферить. Ну допустим перехвачу я эту ошибку. Как принять или откатить изменнения, что там фокс делает ? Сам транзакцию включает ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2005, 13:06:49 |
|
||
|
Разобраться с тригером
|
|||
|---|---|---|---|
|
#18+
piki_pikiА у меня вьюха на эту таблицу буферизованная. Этого вполне достаточно. В каком режиме буферизации находится твой View?Как ты сбрасываешь буфер этого View? Действия должны быть примерно такие: Код: plaintext 1. 2. 3. 4. 5. 6. Вот в этом случае никаких системных сообщений об ошибке не появляется. Все вполне управляемо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2005, 13:52:05 |
|
||
|
Разобраться с тригером
|
|||
|---|---|---|---|
|
#18+
Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2005, 15:19:12 |
|
||
|
Разобраться с тригером
|
|||
|---|---|---|---|
|
#18+
Hi piki_piki! > Создал тригер на изменение, примерно такого вида: В триггере КРАЙНЕ нежелательно что-то трогать в той таблице для которой он вызван, а кроме того в "правильном" триггере в принципе не должно быть ссылок на алиасы открытые не им самим. Мало ли что - может я открою эту таблицу с ALIAS boo - и упадёт твой триггер :) > RETURN .f. && Вот тут интересует > При выполнениии этого условия сам фокс светит мне сообщение triger failed > in TLinks: Правильно светит. Так и должно быть. > 1) Как самостоятельно создать сообщение ( таблица не буферизирована и > буферизировать ее я не собираюсь), через ON Error ловить ? Сделать глобальный объект - переменную или массив. И при обработке ошибки 1539 анализировать этот глобальный объект. > 2) Что нужно делать, если получиться съэмулировать сообщение фокса... Не понял совершенно... Советую создать тестовую базу, в ней пару таблиц, связь между ними, потом настроить RI сгенерировать стандартные триггера ссылочной целостности - потом ВНИМАТЕЛЬНО изучить код созданный генератором RI. Подумать (неоднократно!) почему там сделано так а не иначе - поэкспериментировать... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.11.2005, 01:58:09 |
|
||
|
|

start [/forum/topic.php?fid=41&fpage=292&tid=1593043]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
34ms |
get tp. blocked users: |
2ms |
| others: | 227ms |
| total: | 329ms |

| 0 / 0 |
