Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

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

???????


Наверх

Титульная страница Поиск, карта сайта Написать письмо