Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.015 c
2-1193242294
smartleds
2007-10-24 20:11
2007.11.18
Коллеги подскажите , плз как в StringGrid число в ячейки вывести


2-1193211223
Ega23
2007-10-24 11:33
2007.11.18
Назначение Parent у TFrame


15-1192185959
oldman
2007-10-12 14:45
2007.11.18
Предлагают работу на Оракле (че-то там, связанное с SQL).


15-1192589056
Riply
2007-10-17 06:44
2007.11.18
У нас самое лучшее "Прочее" :)


2-1193295581
Странник81
2007-10-25 10:59
2007.11.18
Можно ли..




   Наверх