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

paulayo911 2013-01-07 02:58:54
调用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
...全文
725 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
paulayo911 2013-01-07
  • 打赏
  • 举报
回复
奶奶的,找到原因了,中间多了一句sql把SQLErrText给清空了。。。结贴送分了
paulayo911 2013-01-07
  • 打赏
  • 举报
回复
但是这样都确实没有返回啊,郁闷
messagebox('错误!',ls_return+ SQLCA.SQLErrText)
pb8 2013-01-07
  • 打赏
  • 举报
回复
raiseerror的东东,你在调用完后可以通过sqlca.sqlerrtext就可以得到错误信息的

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧