Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Exception в ADOExpress for CBuilder и RAISERROR в Stored Procedure  [new]
Фёдор Бочаров
Member

Откуда:
Сообщений: 4
Уважаемые господа
Может ли кто либо подсказать в чём проблема:

в случае такого кода

сервер:
CREATE PROCEDURE sp_Test AS
RAISERROR('This is Error',16,10)

клиент:

String SQL = "EXEC sp_Test";
try
{
TADOConnection1->BeginTrans();
TADOQuery1->SQL->Text = SQL.c_str();
TADOQuery1->ExecSQL();
TADOConnection1->CommitTrans();
}
catch(Exception &e)
{
TADOConnection1->RollbackTrans();
ShowMessage(e.Message);
}

возникает исключение т.е. всё в порядке
а случае

CREATE PROCEDURE sp_Test AS
DECLARE @Tst INT

SET @Tst = 1

IF @Tst = 1
BEGIN
RAISERROR('This is Error',16,10)
END

исключение на клиенте не возникает
Может кто нибудь сталкивался или знает в чём проблема
Заранее благодарен
24 янв 03, 11:52    [114104]     Ответить | Цитировать Сообщить модератору
 Re: Exception в ADOExpress for CBuilder и RAISERROR в Stored Procedure  [new]
YuriAM
Member

Откуда:
Сообщений: 829
RAISERROR('This is Error',16,10)
Генерирует SEVERE ERROR и бросает его ( THROW )
поетому ты после выполнения команды оказываешься в CATCH

Вместо RAISERROR попробуй PRINT .Она просто не записывает сообшение в LOG. Я не пробовал, но ошибки не должно быть .
Удачи!
24 янв 03, 12:54    [114193]     Ответить | Цитировать Сообщить модератору
 Re: Exception в ADOExpress for CBuilder и RAISERROR в Stored Procedure  [new]
YuriAM
Member

Откуда:
Сообщений: 829
Используй хотья бы
RAISERROR('This is Error',0,10)
24 янв 03, 13:07    [114215]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить