Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.18;
Скачать: CL | DM;

Вниз

Обработка ошибок внутри транзакции   Найти похожие ветки 

 
@dim   (2007-06-29 09:37) [0]

Есть некоторый код обрабатывающий ошибки в процедуре обновления записи в таблице
  SELECT @Count = count(*) FROM Operation
  WHERE OperationName = @name
  AND MakeKod = @makekod  

   IF @Count>1 --произошла ошибка
         BEGIN
             raiserror 13000  "Повторяющееся значение атрибута"
             ROLLBACK TRAN
             return -100
          END

работает нормально. Но Почему - то сообщение в приложение не приходит. В чем причина?


 
Ega23 ©   (2007-06-29 09:54) [1]

Так попробуй:
RAISERROR (N"Повторяющееся значение атрибута", 16, 1)


 
@dim   (2007-06-29 11:09) [2]


> Ega23 ©  

Что изменится?


 
Fay ©   (2007-06-29 12:54) [3]

set nocount on ?


 
_MaSteR_NN_   (2007-07-04 09:46) [4]

А вы думаете ROLLBACK TRAN и return -100 будут отработаны? Конечно не будут. Догадались о чём я?


 
ЮЮ ©   (2007-07-05 05:00) [5]

> А вы думаете ROLLBACK TRAN и return -100 будут отработаны?
> Конечно не будут. Догадались о чём я?


В конце-концов можно поменять местами
 ROLLBACK TRAN
 RAISERROR("Повторяющееся значение атрибута", 16, 1)
 RETURN

P.S. А разве это дело процедуры откатывать транзакцию, которую она не начинала?
В рамках транзакции выполняется только эта процедура или ещё есть что-то в пакете?


 
clickmaker ©   (2007-07-05 09:26) [6]


> @dim   (29.06.07 09:37)

а почему повторяющееся значение выясняется "задним числом" - селектом?
Не проще ли перед обновлением проверить?


 
dimaL   (2007-07-05 10:19) [7]


> а почему повторяющееся значение выясняется "задним числом"
> - селектом?
> Не проще ли перед обновлением проверить?

Каким образом, если процедура на обновление записи?


 
clickmaker ©   (2007-07-05 10:59) [8]


> Каким образом

if exists (select * from Operation
 WHERE OperationName = @name
 AND MakeKod = @makekod )
then
 raiserror 40001 "Повторяющееся значение атрибута"
else
 update...


 
sniknik ©   (2007-07-05 11:38) [9]

а не лучше ли просто сделать уникальный индекс по этим полям, чем вообще чтото городить?



Страницы: 1 вся ветка

Текущий архив: 2007.11.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
15-1192327841
Dmitry S
2007-10-14 06:10
2007.11.18
КПД апокалипсиса


15-1192485282
Tirael
2007-10-16 01:54
2007.11.18
по мотивам соседней ветки...


8-1154587038
vladimirg88
2006-08-03 10:37
2007.11.18
Звук при загрузке формы


15-1192643166
infront
2007-10-17 21:46
2007.11.18
составитель формул


4-1178874257
йцукенг
2007-05-11 13:04
2007.11.18
Установка общего доступа к папкам