Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Обработка ошибок в хранимых процедурах (KPH) 01/11/2005 - 10:54:20
      Re: Обработка ошибок в хранимых процедурах (Dinky) 01/11/2005 - 19:33:18
      Re: Обработка ошибок в хранимых процедурах (KPH) 02/11/2005 - 11:01:53
      Re: Обработка ошибок в хранимых процедурах (NULL) 14/01/2008 - 16:41:39

> Original message text:
> From: KPH - 01/11/2005 - 10:54:20
> Subject:Обработка ошибок в хранимых процедурах
> -----------------
> День добрый,
> Подскажите пожалуста как корректно организовать обработку ошибок (НЕ пользовательских) в хранимых процедурах с тем чтобы при ошибке откатить начатую в процедуре транзакцию и при этом вернуть через OUT параметр код возникшей ошибки. Я немогу найти функцию или переменную через которые пожно было бы узнать код ошибки. Получается что для каждого варианта ошибки нужно писать чтото вроде:
>
> DECLARE EXIT HANDLER FOR 1061
> BEGIN
> my_err=1061;
> ROLLBACK;
> END;
>
> Т.Е. каждая процедура в которой я хочу отловить и вернуть код ошибки
> должна содержать столько таких выражений сколько я предполагаю возможных в ней ошибок:
> ---------------------------------------------
> CREATE PROCEDURE p1(OUT my_err INTEGER)
> BEGIN
> ......
> DECLARE EXIT HANDLER FOR 1061
> BEGIN
> my_err=1061;
> ROLLBACK;
> END;
> DECLARE EXIT HANDLER FOR 1062
> BEGIN
> my_err=1062;
> ROLLBACK;
> END;
> ....
> и.т. далее
> ....
> /*логика процедуры*/
> ....
> END
> ----------------------------------------------
> Как то очень не красиво получается. Может обработчик хоть както можно вынести в отдельную функцию.
>
> Заранее спасибо.
>


From: NULL - 14/01/2008 - 16:41:39
Subject:Обработка ошибок в хранимых процедурах
-----------------
и не фига не интересное обсуждение по этой теме
я там так и не нашёл: как узнать номер возникшего исключения?


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
32769



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |