Принимая любой пример для SQL Server 2000 документации, или что-то вродеПравильное использование @@ Ошибка в SQL Server 2000
Use Northwind
Go
Alter Procedure spu_UpdateOrderDetails(
@ProductID Int,
@OrderId Int,
@ErrorCode Int OutPut,
@ErrorMessage Varchar(100) Output
)
As
UPDATE [Order Details]
SET ProductID = @ProductID
WHERE OrderID = @OrderId
Set @ErrorCode = @@ERROR
IF @ErrorCode <> 0
Set @ErrorMessage = 'Some error ocurred'
GO
Declare @MyErrorCode Int
Declare @MyErrorMsg Varchar(100)
Exec spu_UpdateOrderDetails 999, 10248, @MyErrorCode OutPut, @MyErrorMsg OutPut
Print @MyErrorCode
Print @MyErrorMsg
это вызовет ошибки внешнего ключа, и я WLL печати @MyErrorMsg правильно. Но я все еще получаю уродливую ошибку внешнего ключа.
Теперь, если я запускаю из своего приложения, это может быть Delphi или Visual Studio, я все равно получаю уродливое сообщение об ошибке.
Как я могу «заманить» ошибку, чтобы я отображал пользовательскую ошибку пользователю?
(я знаю, что более новые версии SQL Server обеспечивает Try/Поймать, но это SQL Server 2000)
Прочитайте Библию по обработке ошибок SQL Server 2000 и посмотрите, помогает ли она: http://www.sommarskog.se/error-handling-I.html#whathappens – mellamokb