读书人

执行存储过程无法获得用户定义异常信息

发布时间: 2013-01-12 16:25:03 作者: rapoo

执行存储过程无法获得用户定义错误信息
调用sqlserver的存储过程,执行不成功时没法获取到自定义错误信息@cErrMsg,pb版本12.5
存储过程如下:

CREATE PROCEDURE [dbo].[P_test]
(
@cPath NVARCHAR(4000) ,
@cErrMsg NVARCHAR(1000) output
)
AS
......
IF ( SELECT fSize FROM #SIZE WHERE cDriver = LEFT (@cPath, 1) ) <= @fDBSize
BEGIN
SET @cErrMsg = N'指定的路径剩余磁盘空间太少,请选择其他路径或清理磁盘空间!'
RAISERROR(@cErrMsg, 16, 1) WITH NOWAIT
RETURN -1
END

pb中调用如下
DECLARE P_test procedure for P_test
@cPath = :gs_Path,
@cErrMsg = :ls_return OUTPUT
USING SQLCA;

EXECUTE P_test;
Fetch P_test INTO :ls_return;
mle_1.text=ls_return

[解决办法]
raiseerror的东东,你在调用完后可以通过sqlca.sqlerrtext就可以得到错误信息的

读书人网 >PB

热点推荐