dw+sql:想把所有与帐本号相等的物资编码(前四位)取出放在一个数组中,但下面代码无法实现,

peanut2008 2003-05-31 09:41:38
dw+sql:想把所有与帐本号相等的物资编码(前四位)取出放在一个数组中,但下面代码无法实现,
望各位赐教:
string s_zbh
string s_wzbm[]
declare c_wzbm cursor for
select 物资编码
from 验收
where left(物资编码,4) = :s_zbh;
open c_wzbm;
fetch c_wzbm into :s_wzbm[upperbound(s_wzbm) + 1];
do while sqlca.sqlcode=0
fetch c_wzbm into :s_wzbm[upperbound(s_wzbm) + 1];
messagebox('wzbm',s_wzbm[upperbound(s_wzbm) + 1])
loop
close c_wzbm;
...全文
55 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
tjm1 2003-05-31
  • 打赏
  • 举报
回复
to:waterstony(王小石):
消消气,我们都是为人民服务的,不在乎这些,嘻嘻。
:)
waterstony 2003-05-31
  • 打赏
  • 举报
回复
我考,老刀是不是有病啊,亏你还是个小版主,老是这么拷贝人家的答案你不脸红吗,大版主也不来管管?
tchatcha 2003-05-31
  • 打赏
  • 举报
回复
建议楼主用数据存储做,先建一个数据窗口d_wzbm,数据源为
select 物资编码
from 验收
where left(物资编码,4) = :ag_zbh
然后在代码中创建一个datastore ds_1,
ds_1 = create datastore
ds_1.object = 'd_wzbm',然后ds_1.retrieve(s_zbh),你要取到数组的话直接可以用
s_wzbm = ds_1.object.物资编码
tjm1 2003-05-31
  • 打赏
  • 举报
回复
:)
tjm1 2003-05-31
  • 打赏
  • 举报
回复
你的游标用法是不对的:
open c_wzbm;
fetch c_wzbm into :s_wzbm[upperbound(s_wzbm) + 1]; //已经取了一遍了
do while sqlca.sqlcode=0
fetch c_wzbm into :s_wzbm[upperbound(s_wzbm) + 1]; //为什么在这又取一遍
messagebox('wzbm',s_wzbm[upperbound(s_wzbm) + 1])
loop
close c_wzbm;

正确的写法:
open c_wzbm;
fetch c_wzbm into :s_wzbm[upperbound(s_wzbm) + 1];

do while sqlca.sqlcode=0
messagebox('wzbm',s_wzbm[upperbound(s_wzbm) + 1]) //在这处理完在取值。
fetch c_wzbm into :s_wzbm[upperbound(s_wzbm) + 1];
loop
close c_wzbm;
waterstony 2003-05-31
  • 打赏
  • 举报
回复
建议楼主用数据存储做,先建一个数据窗口d_wzbm,数据源为
select 物资编码
from 验收
where left(物资编码,4) = :ag_zbh
然后在代码中创建一个datastore ds_1,
ds_1 = create datastore
ds_1.object = 'd_wzbm',然后ds_1.retrieve(s_zbh),你要取到数组的话直接可以用
s_wzbm = ds_1.object.物资编码

611

社区成员

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

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