Форум: "Базы";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Внизtry...except...end в T-SQL Найти похожие ветки
← →
Wild_arg © (2004-04-20 09:36) [0]Реально ли как-то отловить и обработать ошибки, возникшие при выполнении SQL-кода, в самой хранимой процедуре?
← →
ЮЮ © (2004-04-20 09:40) [1]if @@ERROR > 0
← →
wild_arg © (2004-04-20 10:08) [2]смысл такой:
в БД1 есть процедура, которая собирает некую информацию и вставляет ее в таблицы БД2. Даже хуже - БД1 и БД2 лежат на разных серваках.
Имеем примерно след. структуру хранимой процедуры:
1. сбор данных
2. вставка в БД2
3. подготовка результатов
На втором пункте может возникнуть ошибка - ну например второй сервер, на котором лежит БД2 запущен в монопольном режиме или еще что-то - т.е. инсерт не пройдет.
Хранимую процедуру я запускаю из дельфей и мне хотелось бы, чтобы ошибки пункта два можно было бы обработать в самой хранимой процедуре и не передавать ее в Дельфи
← →
Ega23 © (2004-04-20 10:18) [3]Books On-Line -> RAISERROR + See Also
← →
wild_arg © (2004-04-20 10:29) [4]:) ну ладно, чё вы.... хелпы только ламеры читают
← →
Ega23 © (2004-04-20 10:39) [5]Значит я "регулярный" ламер. Так как хелпы регулярно читаю. Чего и тебе советаю.
← →
Delirium © (2004-04-20 10:48) [6]"хелпы только ламеры читают" - ну раз ты не ламер, зачем тогда тут вопросы задаёшь? Отвечают у нас как раз те - кто читать умеет.
← →
wild_arg © (2004-04-20 10:53) [7]ну все поехали...
Да я тоже хелпы читаю. Но форум не для этого создан, чтобы советовать читать хелпы. Здесь, в принципе, на любой вопрос можно найти ответ в хелпе или еще где-нибудь, если основательно покопаться. Но форум создан как раз для обмена опытом и знаниями, для получения оперативной помощи, если хотите. Не знаете ответа - оставьте вопрос без Ваших комментариев.
Кста, на RAISERROR ничего нужного не нашел - он для генерации сообщения об ошибке, чтобы на клиенте отловить - мне же надо на серваке...
извините, коль что не так
← →
Delirium © (2004-04-20 10:56) [8]Ответ на твой вопрос в первом-же посте, остальное - попытки наставить тебя на путь истинный.
← →
Ega23 © (2004-04-20 11:00) [9]Кста, на RAISERROR ничего нужного не нашел - он для генерации сообщения об ошибке, чтобы на клиенте отловить - мне же надо на серваке...
Кста, ты можешь хп из другой хп на "серваке" вызывать.
← →
jocko © (2004-04-20 13:08) [10]Можно на удаленном сервере создать процедуру вставки и вызвать ее из текущей бд, например, EXEC @@VAR = SERVER.DBNAME.ProcedureName, при этом можно проверять что возвратила эта процедура (if @@ERROR > 0 RETURN 0 ELSE RETURN 1) соответственно сделать IF @@VAR <> 1 COMMIT ELSE ROLLBACK.
Но надо иметь в виду что if @@ERROR > 0 не всегда прокатывает (милые шалосити мелкомягких) и на ошибке может отвалиться пакет целиком. Лучше не полагаясь на советы проэксперементировать через QA.
А еще лучше попробовать пересмотреть алгоритм.
← →
KSergey © (2004-04-20 14:02) [11]Не, raiserror - это не то не путайте
2 Wild_arg
А чем [1] не нравится?? Это же полный ответ!
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.05.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.031 c