Главная страница
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.02 c
6-1174065437
Сет-тер
2007-03-16 20:17
2007.11.18
Расширение прав


2-1193406106
Pacific
2007-10-26 17:41
2007.11.18
Ошибка в коде


6-1173849435
paradox01
2007-03-14 08:17
2007.11.18
Сервер-клиент прием-передача


2-1192857340
Antoxa2005
2007-10-20 09:15
2007.11.18
Как пердать значение параметра null для поля, типа "дата"???


2-1193504034
Steep
2007-10-27 20:53
2007.11.18
Поиск папок