Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.02.13;
Скачать: CL | DM;

Вниз

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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
3-38058
Status_I
2003-01-26 00:09
2003.02.13
Диалог пользователя


1-38241
dadasdgyu
2003-02-05 12:27
2003.02.13
Как Показать Форму?


3-38027
wildcow
2003-01-29 10:43
2003.02.13
SQL 2000 использование Distinct


3-38130
kkostik
2003-01-28 14:27
2003.02.13
Как бороться со снятием задачи


14-38490
Сатир
2003-01-27 13:22
2003.02.13
Тест: несколько обещанных мною отсканированных дипломов