|
Обработка ERROR'а
|
|||
---|---|---|---|
#18+
Подскажите как вместо системного сообщения об ощибке (например #512) подсунють клиенту нечто более вразумительное, т.е. обработать ошибку по своему (система клиент сервер SQL7 - Access2000). Ведь когда я, например, в трригере обнаруживаю эту ошибку (If @@ERROR = 512 ...) сообщение уже несеться к клиенту и транзакция откатывается. Заменить его с помощью sp_addmassage нельзя по определению. В доках есть какой грязный намёк на handler С или С++, но что конкретно они имеют в виду, и обязательно ли на Си? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2000, 13:37 |
|
Обработка ERROR'а
|
|||
---|---|---|---|
#18+
Не доводи до ошибки. Проверяй все необходимые для безошибочной работы условия руками. Ну а если все-таки проверка что-то выявляет то Raiserror('Текст сообщения юзеру', 16, 1) Rollback Transaction Return (про циферки в Raiserror читай в Books OnLine) A2K без всякой дополнительной обработки покажет именно текст ошибки. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2000, 15:47 |
|
Обработка ERROR'а
|
|||
---|---|---|---|
#18+
Если у Вас решение об откате транзакции принимает клиент (т.е. Вы можете обработать код ошибки), то никаких проблем нет. Если на сервере - то, к сожалению, поезд уже ушёл. Что же касается установки MSG Handler & Error Handler, то они устанавливаются ,когда Вы сами обрабатываете ошибки (т.е. уровень С для DBLIB), или можете сделать собственную обработку поверх существующей, но для этого хорошо бы знать Handler старого обработчика. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.12.2000, 18:56 |
|
|
start [/forum/topic.php?fid=46&tid=1827571]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
35ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
others: | 253ms |
total: | 380ms |
0 / 0 |