Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Обработка exceptions в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
День добрый, Если у меня произошел exception при выполнении хран. процедуры, то могу ли я обработать его каким либо образом? Что то типа Try...Catch Дмитрий ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2002, 10:17 |
|
||
|
Обработка exceptions в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
В MSSQL такого нет. Только проверка @@error после каждого чиха. См. также SET XACT_ABORT {ON | OFF} ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2002, 10:21 |
|
||
|
Обработка exceptions в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Еще бывают ситуации когда ошибка в процедуре приводит к завершению активного батча, или даже обрывает текущее соединение. Т.е. проверять @@ERROR негде и XACT_ABORT тоже не срабатывает. В первом варианте ошибку можно перехватить так: DECLARE @rc int SET @rc = sp_executesql 'Ваш подозрительный код' IF @rc<>0 BEGIN -- Обработка ошибки END Со вторым вариантом сложнее, но тоже не совсем безнадежно. Например можно исполнить его с помощью xp_cmdshell и osql Конечно это крайний случай. Лучше не допускать даже возможности возникновения подобных ошибок в коде. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2002, 14:53 |
|
||
|
Обработка exceptions в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Ыы! Ну не надо по таким поводам использовать sp_executesql! Шо ж все так стараются динамические запросы влепить куда не попадя Круг их применения достаточно ограничен, не стоит его расширять без надобности. Ведь сто раз уже мусолили на этом форуме их недостатки... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2002, 15:19 |
|
||
|
Обработка exceptions в хранимой процедуре
|
|||
|---|---|---|---|
|
#18+
Ну чего же сразу наезжать Я же не говорю, что надо sp_executesql лепить в любом контексте. Все зависит от ситуации. Например в таком случае до проверки @@ERROR дело вообще не дойдет: select * from tbl if @@ERROR<>0 BEGIN print 'No such table ...' END ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.02.2002, 15:28 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1823732]: |
0ms |
get settings: |
10ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
88ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 263ms |
| total: | 464ms |

| 0 / 0 |
