PB调用sqlserver存储过程为啥得不到返回值?
本人在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接口,数据库连接无问题,无论使用方案一,还是方案二都得不到返回值,求指点!