sqlserver存储过程的问题1!

newwei 2002-12-04 11:33:58
1。在SQLSERVER7.0中定义了一个简单的存储过程:input
create proc input
@mzbh char(10)
as
select xm from sf where sf.bh = @mzbh

在PB8中使用这个存储过程,我使用了一个循环,取出树窗的BH作为存储过程的参数,可是只能得到一个值,怎样才能循环使用这个存储过程??

string ls_mzbh,ls_xm
int n
for n = 1 to dw_1.getitemstring(n,"bh")
declare mz_input procedure for input
@mzbh = :ls_mzbh;
execute mz_input;
do while sqlca.sqlcode = 0
fetch mz_input into :ls_xm;
loop
next



...全文
31 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
quanwen 2002-12-04
  • 打赏
  • 举报
回复
每循环一次查一下sqlca.sqlcode返回的值是多少?
我定义的存储过程sqlca.sqlcode返回的值是100.
newwei 2002-12-04
  • 打赏
  • 举报
回复
不是啊,ls_xm只能得到第一条值!后面循环的都是NULL
quanwen 2002-12-04
  • 打赏
  • 举报
回复
可以把ls_xm定义成ls_xm[]
quanwen 2002-12-04
  • 打赏
  • 举报
回复
所以运行到最后就只有一个值了
quanwen 2002-12-04
  • 打赏
  • 举报
回复
我觉得问题就在do while ...loop上了,因为循环会把上一次赋给ls_xm的值冲掉。你觉得呢?
zqllyh 2002-12-04
  • 打赏
  • 举报
回复
树窗的BH也应该是一个数据集呀?
select xm from sf where sf.bh in (select bh from 树窗的数据集)
Iamsmallstar 2002-12-04
  • 打赏
  • 举报
回复
for n = 1 to dw_1.getitemstring(n,"bh")写错了
quanwen 2002-12-04
  • 打赏
  • 举报
回复
是不是可能了
newwei 2002-12-04
  • 打赏
  • 举报
回复
啊,写错了
for n = 1 to dw_1.rowcount()
ls_mzbh = dw_1.getitemstring(n,"bh")

newwei 2002-12-04
  • 打赏
  • 举报
回复
难道大家都吃饭去了,吗?怎么每人回答我啊!!!
quanwen 2002-12-04
  • 打赏
  • 举报
回复
for n = 1 to dw_1.getitemstring(n,"bh")
样能通过吗?
newwei 2002-12-04
  • 打赏
  • 举报
回复
用数组是不行的。不是会把以前的值覆盖,而是它只能得到n=1时的值,当循环到第二条时,得出的是个空值。不明白是什么原因?????????????????
888888888888 2002-12-04
  • 打赏
  • 举报
回复
建议用数组

1,108

社区成员

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

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