Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.045 c
2-1193178890
хочу знать...
2007-10-24 02:34
2007.11.18
Преобразование типов!


1-1188408542
Farel
2007-08-29 21:29
2007.11.18
firebird


2-1193390860
webpauk
2007-10-26 13:27
2007.11.18
Mdi SystemIcons


2-1193392869
Delphi_Beginer
2007-10-26 14:01
2007.11.18
Массив как возвращаемый параметр


2-1193291606
Sergl
2007-10-25 09:53
2007.11.18
Как убрать перевод строки при работе с memo?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский