![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
RAISERROR ;какбудто игнорируется !!! [D6, MSSQL]
JibSkeart © (2003-01-27 13:22:00)Тоесть если в теле процедуры ента функция стоит первая то ошибка
появляется
но если
create procedure [...] as
... -- Сдеся всякая всячина
RAISERROR("Tram pam pam",16,1)
никакой ошибки он невыводит :(
как быть
mad0max (2003-01-29 11:55:00) [1]to JibSkeart
>>RAISERROR("TESTERROR", 1,1)
Кстати что вы слышали об уровнях ошибок в SQL Server (это первый числовой параметр в raiseerror)
Сообщения начиная только с 12 уровня выбрасываюся на клиента, так что ваша единичка никак не должна прокатить
to Александр Спелицин
OLE DB Privider For MSSQL - все замечательно работает, уже годами...
Я так думаю...
:)
JibSkeart (2003-01-29 11:21:00) [2]Спасибо попробуем
Александр Спелицин (2003-01-29 11:18:00) [3]Вы работаете через OLE DB Privider For MSSQL
Перейдите на OLE DB Privider For ODBC и этого глюка у Вас не будет. Проверено, работает.
JibSkeart (2003-01-29 10:37:00) [4]Дело в том что я так и обрабатываю
скорее всего
Цитата:
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
Вот и даже так уже ошибки нету !!!
Как быть тут ???
mad0max (2003-01-29 04:39:00) [5]Все правильно тебе писали, обрабатывай try-except
try
StoredProc.ExecProc
except
ShowMessage("Типа ошипка")
// А хочешь вот так, будет писаться ошибка сервера, контекст
// можешь убрать если хелп не цепляешь
on E: Exception do ShowMessage(E.Message + " " + IntToStr(E.HelpContext));
end
JibSkeart (2003-01-28 11:27:00) [6]Хочу получить на клиенте
иногда приходится
выводить что "Операция прошла успешно" итд...
а там уже обрабатываю через
try
except
вот так хочется и все :))
mad0max (2003-01-28 05:19:00) [7]Хочешь получить сообщение на клиенте или на сервере?
Shaman_Naydak (2003-01-27 19:59:00) [8]а РАБОТЕШЬ ты, батька, через ADO.
Это не бага, это фича :)
Совет Zelius дал дельный
другой вариант:
ковырни настройки сервака..
Ещу вариант:
если нет у тебя возвращаемого рекордсета, поставь флажок в дельфевом компоненте.
Удачи на дорогах
Zelius (2003-01-27 19:22:00) [9]В начале процедуры, первой строкой поставь SET NOCOUNT ON
3JIA9I CyKA (2003-01-27 17:42:00) [10]raiserror 50001 "jopa"
Mike_Goblin (2003-01-27 16:07:00) [11]Если перед RAISERROR были какие либо удачные выборки данных, то он не поднимается, такая вот особенность MS SQL
JibSkeart (2003-01-27 14:38:00) [12]нет нет эта процедура находится
в MSSQL
тобищь хранимая процедура
и в нутри этой процедуры есть всякие сравнения итд
что правильно внес пользователь итд и вывести ему енту ошибку
MOA (2003-01-27 14:37:00) [13]А не делаете ли Вы ROLLBACK перед RAISERROR?
Удачи!
sniknik (2003-01-27 13:30:00) [14]try
create procedure [...] as
... -- Сдеся всякая всячина
except
RAISERROR("Tram pam pam",16,1)
end
???????