Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Вниз

RAISERROR какбудто игнорируется !!!   Найти похожие ветки 

 
JibSkeart   (2003-01-27 13:22) [0]

Тоесть если в теле процедуры ента функция стоит первая то ошибка
появляется
но если

create procedure [...] as

... -- Сдеся всякая всячина

RAISERROR("Tram pam pam",16,1)

никакой ошибки он невыводит :(
как быть


 
sniknik   (2003-01-27 13:30) [1]

try
create procedure [...] as

... -- Сдеся всякая всячина
except
RAISERROR("Tram pam pam",16,1)
end

???????


 
MOA   (2003-01-27 14:37) [2]

А не делаете ли Вы ROLLBACK перед RAISERROR?
Удачи!


 
JibSkeart   (2003-01-27 14:38) [3]

нет нет эта процедура находится
в MSSQL
тобищь хранимая процедура

и в нутри этой процедуры есть всякие сравнения итд
что правильно внес пользователь итд и вывести ему енту ошибку


 
Mike_Goblin   (2003-01-27 16:07) [4]

Если перед RAISERROR были какие либо удачные выборки данных, то он не поднимается, такая вот особенность MS SQL


 
3JIA9I CyKA   (2003-01-27 17:42) [5]

raiserror 50001 "jopa"


 
Zelius   (2003-01-27 19:22) [6]

В начале процедуры, первой строкой поставь SET NOCOUNT ON


 
Shaman_Naydak   (2003-01-27 19:59) [7]

а РАБОТЕШЬ ты, батька, через ADO.
Это не бага, это фича :)
Совет Zelius дал дельный
другой вариант:
ковырни настройки сервака..

Ещу вариант:
если нет у тебя возвращаемого рекордсета, поставь флажок в дельфевом компоненте.

Удачи на дорогах


 
mad0max   (2003-01-28 05:19) [8]

Хочешь получить сообщение на клиенте или на сервере?


 
JibSkeart   (2003-01-28 11:27) [9]

Хочу получить на клиенте
иногда приходится
выводить что "Операция прошла успешно" итд...
а там уже обрабатываю через
try
except


вот так хочется и все :))



 
mad0max   (2003-01-29 04:39) [10]

Все правильно тебе писали, обрабатывай try-except

try
StoredProc.ExecProc
except
ShowMessage("Типа ошипка")
// А хочешь вот так, будет писаться ошибка сервера, контекст
// можешь убрать если хелп не цепляешь
on E: Exception do ShowMessage(E.Message + " " + IntToStr(E.HelpContext));

end


 
JibSkeart   (2003-01-29 10:37) [11]

Дело в том что я так и обрабатываю
скорее всего
Цитата:
Mike_Goblin © (27.01.03 16:07)
Если перед RAISERROR были какие либо удачные выборки данных, то он не поднимается, такая вот особенность MS SQL


Но сдругой стороны

если процедура будет выглядить так

select @a = a from table
-- Пускай @a будет равен 1
-- значит @res = 1
if a>2
begin
set @res = 0
end
else
begin
set @res = 1
end
if @res <> 0
begin
RAISERROR("TESTERROR",1,1)
end

Вот и даже так уже ошибки нету !!!
Как быть тут ???


 
Александр Спелицин   (2003-01-29 11:18) [12]

Вы работаете через OLE DB Privider For MSSQL
Перейдите на OLE DB Privider For ODBC и этого глюка у Вас не будет. Проверено, работает.


 
JibSkeart   (2003-01-29 11:21) [13]

Спасибо попробуем


 
mad0max   (2003-01-29 11:55) [14]

to JibSkeart

>>RAISERROR("TESTERROR", 1,1)
Кстати что вы слышали об уровнях ошибок в SQL Server (это первый числовой параметр в raiseerror)
Сообщения начиная только с 12 уровня выбрасываюся на клиента, так что ваша единичка никак не должна прокатить

to Александр Спелицин
OLE DB Privider For MSSQL - все замечательно работает, уже годами...

Я так думаю...
:)





Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2003.02.13;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.009 c
4-38620
Tolea
2002-12-30 11:10
2003.02.13
Закрытие окон


3-38068
Polevi
2003-01-27 11:50
2003.02.13
ADO Recordset


3-38124
Dim!S
2003-01-28 12:46
2003.02.13
Поиск подстроки


7-38595
Lex_!
2002-12-03 11:07
2003.02.13
Запуск программы из моей программы...


8-38391
Sam Stone
2002-10-30 16:50
2003.02.13
Произвольные формы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский