Форум: "Базы";
Текущий архив: 2007.11.18;
Скачать: [xml.tar.bz2];
ВнизОбработка ошибок внутри транзакции Найти похожие ветки
← →
@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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.053 c