Форум: "Базы";
Текущий архив: 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