存储过程去output值的问题

yemian01 2005-09-22 10:47:33
如下代码:
string job
int rslt
declare p_NewMession procedure for BuildNewMession @messionid=:job,@rslt=:rslt output using sqlca;
execute p_NewMession ;
fetch p_NewMession into :rslt ;
总是得不到output值
单步调试,sqlerrtext是:
SQLSTATE = 22005[Microsoft][ODBC SQL Server Driver]对于造型说明无效的字符值
另外存储过程定义如下:
Procedure BuildNewMession
@MessionID varchar(4),
@rslt int output

请大家帮我诊断诊断,谢谢!
...全文
163 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
yemian01 2005-09-22
  • 打赏
  • 举报
回复
to wscft: 你的方法我也试过,不行的
to hangzhou6274:
我在sqlserver的查询分析器里测试:
declare @rslt int
exec BuildNewMession '0006',@rslt output
select @rslt
是能通过的

关键是execute的时候就出错了,还没到fetch呢
hangzhou6274 2005-09-22
  • 打赏
  • 举报
回复
你在存储过程里面最后一句select @var就可以了啊
wscft 2005-09-22
  • 打赏
  • 举报
回复
@messionid=:job,@rslt=:rslt output using sqlca;
改为
@messionid=:job using sqlca;
试试看, output 不需要声明吧
yemian01 2005-09-22
  • 打赏
  • 举报
回复
怎么错了呢,messionid传了'0001'进去,rslt不用传值进去,只要output
hanker1314520 2005-09-22
  • 打赏
  • 举报
回复
调用的参数都是错误的
yemian01 2005-09-22
  • 打赏
  • 举报
回复
搞定了,用sqlserver的接口,不用odbc就行了,破odbc,害我搞了一天
谢谢
lovelihp 2005-09-22
  • 打赏
  • 举报
回复
把存储过程关联数据窗口吧~~
yemian01 2005-09-22
  • 打赏
  • 举报
回复
我把BuildNewMession改为数据库里没有的buildNewMession2,竟然报同样的错,郁闷啊
yemian01 2005-09-22
  • 打赏
  • 举报
回复
再顶,请高手帮忙
yemian01 2005-09-22
  • 打赏
  • 举报
回复
to wscft
非常感谢!
改为out还是不行,执行execute 之后,sqlerrtext仍然是错误:
SQLSTATE = 22005[Microsoft][ODBC SQL Server Driver]对于造型说明无效的字符值
wscft 2005-09-22
  • 打赏
  • 举报
回复
不好意思, 刚刚看了看pb的帮助:
@messionid=:job,@rslt=:rslt output using sqlca;
这里的 output 应该改为 out

最后的rslt 的值不需要用fetch 得到
执行完 execute p_NewMession ; 就应该得到该值了吧
yemian01 2005-09-22
  • 打赏
  • 举报
回复
自己顶一把,大伙帮帮忙

1,077

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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