PB调用sqlserver存储过程为啥得不到返回值?

taxlin 2020-09-19 08:59:47
本人在sqlserver2005中创建了一个简单的存储过程:
ALTER procedure [dbo].[sp_cxxh](@xm nvarchar(10),@xh nvarchar(10) output)
as
select @xh=学号 from xsxx_zzy where 姓名=@xm

然后在sqlserver中测试:
declare @xh nvarchar(10)
exec sp_cxxh '张三',@xh OUTPUT
print @xh
------------------
能得到返回值:10021证明这个存储过程是正确的。

然后我在pb中编写如下代码:

string ls_xh,ls_xm
ls_xm='张三'
DECLARE lpro_test PROCEDURE FOR sp_cxxh (:ls_xm,:ls_xh OUTPUT); //方案一
//DECLARE lpro_test PROCEDURE FOR sp_cxxh @xm=:ls_xm,@xh=:ls_xh OUTPUT using sqlca; //方案二

EXECUTE lpro_test;
Fetch lpro_test INTO :ls_xh;
messagebox("",string(ls_xh))

我使用的是ODBC接口,数据库连接无问题,无论使用方案一,还是方案二都得不到返回值,求指点!
...全文
262 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
WMERP 2020-10-17
  • 打赏
  • 举报
回复
你存储过程最后语句要 select @xh ,表示返回的是结果集
mytfzg 2020-10-12
  • 打赏
  • 举报
回复
MSSQL存储过程中输出参数的读取 declare pro_1 procedure for tm_print_out_1 @gzjh=:s_jhh @idh=:l_idh output using sqlca; execute pro_1; fetch pro_1 into :l_idh; close pro_1;
谢良 2020-09-29
  • 打赏
  • 举报
回复
把存储过程做成dwobject,再从dwobject 上得到你所要的结果.
wangxun0997 2020-09-23
  • 打赏
  • 举报
回复
一层一层用最简单示例测试吧,貌似你过程还套用了另外的输出过程,万一存储过程逻辑中无输出呢...

752

社区成员

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

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