|
|
|
как в РВ ... trigger
|
|||
|---|---|---|---|
|
#18+
Как в РВ узнать сработал TRIGGER или нет, т.е. не сам триггер а его тело? Пример: Есть TV внем каталоги из БД На удаление каталога удаление каталога Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. На данную таблицу (sp_lg) стоит триггер Код: plaintext 1. 2. 3. 4. 5. если посмотреть на первый скрипт то получается что католог удаляется а с базы запись нет (с учетом триггера), как быть или как сделать правильно??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 19:30 |
|
||
|
как в РВ ... trigger
|
|||
|---|---|---|---|
|
#18+
Подозреваю, что если сработал RAISEERROR из тела триггера, то SQLDBCODE будет равно 20000. Не могу не обратить ваше внимание на то, что управление транзакциями в серверном коде требует очень ясного понимания, для чего это делается и к каким последствиям может привести. Например, допускаю (очень давно не работал с ASA), что выполнение rollback приведет к тому, что клиент будет считать запрос успешно выполненным. И еще... автор Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 20:05 |
|
||
|
как в РВ ... trigger
|
|||
|---|---|---|---|
|
#18+
также очень плохой стиль удалять данные из БД, лутше всего перенести записи в другую таблицу и чистить эту табулку по мере надобности или поменять статус записи, так у вас никогда не пропадут данные которые были случайно удаленны юзером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 20:19 |
|
||
|
как в РВ ... trigger
|
|||
|---|---|---|---|
|
#18+
zuzuтакже очень плохой стиль удалять данные из БД, лутше всего перенести записи в другую таблицу и чистить эту табулку по мере надобности или поменять статус записи, так у вас никогда не пропадут данные которые были случайно удаленны юзером.Юзера вообще лучше к БД на пушечный выстрел не подпускать :-))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 20:35 |
|
||
|
как в РВ ... trigger
|
|||
|---|---|---|---|
|
#18+
DIGITALPROКак в РВ узнать сработал TRIGGER или нет, т.е. не сам триггер а его тело? Пример: Есть TV внем каталоги из БД На удаление каталога удаление каталога Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. На данную таблицу (sp_lg) стоит триггер Код: plaintext 1. 2. 3. 4. 5. если посмотреть на первый скрипт то получается что католог удаляется а с базы запись нет (с учетом триггера), как быть или как сделать правильно??? В триггере MESSAGE можно смело убирать - PB его не увидит. Понять, что операция была прервана можно будет по ошибке с RAISERROR. Для PB тогда у SQLCA свойства будут установлены следующим образом: Код: plaintext 1. 2. По поводу замечаний - естественно ROLLBACK никогда не сработает после того, как уже был осуществлен выход из процедуры по return. Плюс никогда нельзя использовать в пределах транзакции модальные окна и сообщения - это означает, что пока юзер не закроет такое окно, вся транзакция внутри БД будет висеть мертвым грузом, блокируя записи, а значит все остальные юзера так же будут сидеть и ждать нажатия кнопки OK :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.11.2004, 21:47 |
|
||
|
как в РВ ... trigger
|
|||
|---|---|---|---|
|
#18+
Огромное спасибо! По поводу Код: plaintext 1. 2. 3. 4. Подозреваю что если сработал RAISEERROR из тела триггера то SQLDBCODE будет равно 20000.SQLCode = -1SQLDBCode = -20000SQLErrorText = 'raise error выполнен: Нельзя удалить текущую запись' А на самом деле вышло следующие: Код: plaintext 1. 2. 3. В триггере MESSAGE можно смело убирать - PB его не увидит. Не удивляйтесь, но у меня видит, при чем только если поставить type warning И последнее: в триггере rollback тоже надо ставить перед riseerror ? Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2004, 08:38 |
|
||
|
как в РВ ... trigger
|
|||
|---|---|---|---|
|
#18+
DIGITALPROв триггере rollback тоже надо ставить перед riseerror ? Код: plaintext Код: plaintext 1. 2. 3. Итак, по шагам: 1. Из тела триггера удаляете ROLLBACK 2. В событии dberror анализируете sqldbcode и sqlerrtext соответствующего объекта транзакций 3. Транзакциями управляете с клиента. Я бы для этой цели рекомендовал использовать событийную модель, аналогичную той, которая реализована в PFC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2004, 10:25 |
|
||
|
как в РВ ... trigger
|
|||
|---|---|---|---|
|
#18+
to PL99 Спасибо, все получилось! Но еще вопроик: Я пока не пользуюсь (просто еще ненаучился) событием dberror, это плохо? PFC не использую, пока бы просто с РВ более мение разобратся по нормальному, а потом можно и PFC начать изучать P.S. и кто сказал что легко с Acces спрыгнуть на РВ, абсалютно другой подход.?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2004, 11:03 |
|
||
|
как в РВ ... trigger
|
|||
|---|---|---|---|
|
#18+
DIGITALPROP.S. и кто сказал что легко с Acces спрыгнуть на РВ, абсалютно другой подход.?!Конечно нелегко, сам именно оттуда и спрыгивал не далее как 9 лет назад :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.11.2004, 11:25 |
|
||
|
|

start [/forum/moderation_log.php?user_name=GUEST_0101010]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
163ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 444ms |
| total: | 718ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...