Страница 1 из 1

RAISEERROR

Добавлено: Пт 02 ноя 2018 20:42
WildFrag
Подскажите пожалуйста, в хранимке возникает ошибка, SSMS ловит ошибку типа

Msg 50000, Level 16, State 1, Procedure TestMessages, Line 20 [Batch Start Line 0]
Реальная ошибка

В дельфи я ловлю только сообщение "Реальная ошибка"
Как я могу поймать текст детализирующий место возникновения ошибки?

Re: RAISEERROR

Добавлено: Пт 09 ноя 2018 13:55
AndreyZ
WildFrag писал(а):
Пт 02 ноя 2018 20:42
Msg 50000, Level 16, State 1, Procedure TestMessages, Line 20 [Batch Start Line 0]
Этот текст генерирует парсер SSMS, а не SQL Server.

WildFrag писал(а):
Пт 02 ноя 2018 20:42
Реальная ошибка
Поэтому в UniDAC приходит только эта ошибка от SQL Server. И мы не можем повлиять на это поведение.

Однако, вы можете добавить RAISERROR с детальной информацией в TRY...CATCH хранимой процедуры. Например:

Код: Выделить всё

RAISERROR (15600,-1,-1, 'Реальная ошибка. Контрольная точка 42. ....');  
Более подробно на MSDN о RAISERROR: https://docs.microsoft.com/en-us/sql/t- ... rver-2017 и TRY...CATCH: https://docs.microsoft.com/en-us/sql/t- ... erver-2017