初次使用存储过程遇到的问题

boolean6199 2002-04-04 04:24:34
初次使用存储过程,依样画葫芦,execute之后发生错误,sqlstate是22005,sqlerrtext为对于造型说明无效的字符值,请帮忙。
...全文
28 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
boolean6199 2002-04-08
  • 打赏
  • 举报
回复
大伙儿给个建议吧:(
boolean6199 2002-04-08
  • 打赏
  • 举报
回复
//////////
PB中的代码:
string ls_muh
int li_rowcou
ls_muh = "123"
declare sp_smhrepeat procedure for cf_SmhRepeat
@muh = :ls_muh,
@rowcou = :li_rowcou output;
execute sp_smhrepeat;
if sqlca.sqlcode = 0 then
fetch sp_smhrepeat into :li_rowcou;
messagebox("成功",string(li_rowcou))
else
messagebox("错误",sqlca.sqlerrtext)
end if
close sp_smhrepeat;


//////////////////////////////
SQL SERVER 2000中的存储过程代码:
CREATE PROCEDURE cf_SmhRepeat (@muh char(12), @rowcou int output)
as
if isnull(@muh,'0') = '0'
begin
set @rowcou = -1
return
end
select @rowcou = count(ts_muh) from ts_cfmaint where ts_muh = @muh
GO

问题在哪里?
boolean6199 2002-04-08
  • 打赏
  • 举报
回复
补充一句,通过odbc连的数据库。
boolean6199 2002-04-08
  • 打赏
  • 举报
回复
declare sp_smhrepeat procedure for cf_SmhRepeat(:ls_muh,:li_rowcou);
execute sp_smhrepeat;
if sqlca.sqlcode = 0 then
fetch sp_smhrepeat into :li_rowcou;
messagebox("成功",string(li_rowcou))
else
messagebox("错误",sqlca.sqlerrtext)
end if
close sp_smhrepeat;
调用成功,但是li_rowcou未被赋值。
fangss 2002-04-08
  • 打赏
  • 举报
回复
declare sp_smhrepeat procedure for cf_SmhRepeat( :ls_muh);
execute sp_smhrepeat;
fetch sp_smhrepeat into :li_rowcou output;
close sp_smhrepeat;

sydeng 2002-04-04
  • 打赏
  • 举报
回复
把你的存储过程在pb中的代码写出来.

1,076

社区成员

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

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