100分,分不够再加,应该很简单

twb88 2003-04-03 10:35:19
遇到一个很烦人的东东
我的存储过程是这样的,(sql2000)
CREATE PROCEDURE pro_text @sum int output
AS
set nocount on
select distinct 姓名 from 作者表

select @sum=@@rowcount
return @sum


GO
在Pb中调用
integer li_sum
DECLARE aa PROCEDURE FOR pro_text @sum=:li_sum output ;
execute aa;
integer a
fetch aa into :a;

messagebox('a',string(sqlca.sqlcode))
messagebox('a',string(sqlca.sqlerrtext))
(在这句出错,不知为什么,提示为尝试转换源字段中因语法错误而停止的数据)
close aa
请各位大哥帮忙,分不够,加


...全文
29 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
twb88 2003-04-04
  • 打赏
  • 举报
回复
还有点
我messagebox('a',string(sqlca.errtext))
我是为了调试用
实际上没有用
我去掉了还是出现那个提示
烦死我了
return @sum
我也去掉了
还是不行
twb88 2003-04-04
  • 打赏
  • 举报
回复
各位大哥,你们弄错我的意思了
我的意思是
fetch aa into :a;或者fetch aa into :li_sum;
没有得到返回值
真不明白,因该没错呀
Tigersong 2003-04-04
  • 打赏
  • 举报
回复
好像return 后面不需要@sum吧
Blackride 2003-04-04
  • 打赏
  • 举报
回复
我不明白 存储过程为什么可以当游标用!!
怎么分析各语句的执行顺序啊·!!
还有就是个存储过程 及 调用的方式是要解决什么问题?
andyzq 2003-04-04
  • 打赏
  • 举报
回复
CREATE PROCEDURE pro_text @sum int output
AS
set nocount on
select distinct 姓名 from 作者表
select @sum=@@rowcount

这样即可,不需要return @sum了,因为@sum已经被定义为输出参数了

pb中这样调用

int li_sum
DECLARE aa PROCEDURE FOR pro_text
@sum=:li_sum output;
execute aa;
fetch aa into :li_sum;
close aa;
xirumin 2003-04-04
  • 打赏
  • 举报
回复
不要用sum做变量名可能更好.另外sqlca.sqlerrtext已经是string类型的, 不用再转换

752

社区成员

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

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