在Sybase中获取系统错误消息

时间:2015-05-22 08:53:47

标签: sybase-ase

我正在编写一个程序并在每一步之后进行错误处理。如果出现错误,我将返回错误代码,其中包含自定义用户友好错误消息。 但由于一些要求,我还必须传递系统错误信息。

示例:

例如:我正在将一些记录插入表中,如果出现问题,我会收到错误消息来处理它。

Insert into A
Select top 250 id from C
inner join D
on c.id = D. id


IF (@@error != 0)
BEGIN
    SELECT @p_err_code = 1
    SELECT @p_err_desc = "Error while inserting records into #PAR_PROVIDERS."
    <---------- how to pass system error message here-------->

    DROP TABLE #PAR_PROVIDERS
    RETURN 1
END

1 个答案:

答案 0 :(得分:1)

我不知道如何处理指定错误消息 - 我认为这是不可能的。也许以下查询将满足您的需求。它返回并模式消息,例如Must declare variable '%.*s'.

Must declare variable 'fake variable'.插入内容
SELECT description 
from master..sysmessages where error = @@error
每次进行操作时

@@error变量都会发生变化,因此您需要使用局部变量,例如@err。你的代码应该是这样的。

declare @err int,
        @msg varchar(255)

Insert into A
Select top 250 id from C
inner join D
on c.id = D. id

select @err = @@error

IF (@err != 0)
BEGIN
    SELECT @p_err_code = 1
    SELECT @p_err_desc = "Error while inserting records into #PAR_PROVIDERS."

    SELECT @msg = description 
    from master..sysmessages where error = @err

    DROP TABLE #PAR_PROVIDERS
    RETURN 1
END