Главная страница
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
9-38010
Fog
2002-09-04 11:32
2003.02.13
DirectDraw?


1-38309
lopatkin
2003-02-03 13:14
2003.02.13
Функция Copy() в Delphi 6


3-38147
VinRaider
2003-01-27 01:35
2003.02.13
Указание пути к базе данных


6-38422
TForm1
2002-12-17 05:36
2003.02.13
Получить почту, используя API


9-37994
3d[Power]
2002-08-29 05:16
2003.02.13
Direct 3D Sound