hur.cn - 华软网

 热门搜索

向存储过程传递变量时不能使用OUTPUT选项?

  作者:未知    来源:网络    更新时间:2017/12/5
PB语句如下:
declare proc_sp_Get_PLNo procedure for sp_Get_PLNo
@Country_Code = :gs_country_code,
@PLNo = :ls_pl_no OUTPUT;

错误信息如下:
SQLSTAT=42000
Microsoft OLEDB Provider for SQL Server
向存储过程传递变量时不能使用OUTPUT选项?
(Can not use the OUTPUT option when passing a constant to a stored procedure)

请高手帮忙解决,谢谢!
------华软网友回答------
是在execute proc_sp_Get_PLNo;时出错的
------华软网友回复------
可以用output参数的,根据提示,你的错误在于把一个 constant(常量) 作为参数
------华软网友回复------
我的两个参数都是变量啊
------华软网友回复------
检查一下output那个参数的变量的定义是否带了constant关键字
------华软网友回复------
两个变量都是STRING,没有constant关键字
------华软网友回复------
在pb中调用带output参数的SP,容易出错
新建一个transation对象,把SP定义为local external function,可解决这种问题
------华软网友回复------
为什么这样也错?
//存储过程
create procedure pro_my
(@i int,@j int,@m int output)
as
set @m=@i+@j

//pb中简单调用
int i,j,m;
declare  pro_my procedure for pro_my
@i=:i,@j=:j,@m=:m output,
using  sqlca;
i=integer(sle_1.text)
j=integer(sle_2.text)
execute pro_my;----这句在执行过程中好像没用上,为什么?
sle_3.text=string(m)

------华软网友回复------
http://community.csdn.net/Expert/topic/3850/3850732.xml?temp=.7448847
------华软网友回复------
怎么把SP定义为local external function,能不能给一个例子,我试了一下,不知道怎么调用定义好的函数。
------华软网友回复------
我也碰到过,我用的是PB6,不知跟PB的版本会不会有关系      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。