注册 登录
编程论坛 PowerBuilder

[求助]动态数据窗口对象不能多次调用

wsl000 发布于 2006-03-16 11:43, 1905 次点击
ls_sql="select 编号,姓名,"+all_gzxmmc+",出勤天数,应发工资,扣除工资,实发工资 from gz_info"
根据我选择的条件不同变量all_gzxmmc的值就不同
也就是说组成动态数据窗口对象的字段就不同
问题
我运行应用程序第一次根据条件调用创建动态数据窗口对象的代码则执行成功
第二次调用就不会成功
为什么会出现这种情况呀
11 回复
#2
ヤ順祺冄繎ヤ2006-03-16 11:54
帮不了你,我没遇到过!!
#3
wsl0002006-03-16 12:00

#4
ヤ順祺冄繎ヤ2006-03-16 12:04
把代码贴上来看一下吧!
也许能帮到你呢.但是我没遇到过这种情况.
也许自己写的程序不容易发现错误呢!
#5
wsl0002006-03-16 12:09
string ls_sql,ls_syntax,ls_err,ls_present
string gzxmmc[],cur_bm,all_gzxmmc
int i,rows
cur_bm=trim(ddlb_1.text)
cb_7.triggerevent(clicked!)
select count(*) into :rows from gzxmgl where 部门=:cur_bm and 日期=:cur_date;
declare cur_gzxmmc cursor for select 工资项目名称 from gzxmgl where 部门=:cur_bm and 日期=:cur_date;
open cur_gzxmmc;
for i=1 to rows
fetch cur_gzxmmc into :gzxmmc[i];
if i=1 then
all_gzxmmc=gzxmmc[1]
else
all_gzxmmc=all_gzxmmc+","+gzxmmc[i]
end if
next
ls_sql="select 编号,姓名,"+all_gzxmmc+",出勤天数,应发工资,扣除工资,实发工资 from gz_info"
ls_present='style(type=grid)'
ls_syntax=sqlca.syntaxfromsql( ls_sql,ls_present,ls_err)
dw_1.create(ls_syntax,ls_err)
dw_1.settransobject(sqlca)
dw_1.retrieve( )
这是创建动态数据窗口对象的代码
#6
wsl0002006-03-16 12:10
代码在第一次调用是都可以正确执行
但是第二次就不可以了
#7
ヤ順祺冄繎ヤ2006-03-16 12:15
会不会是游标的问题,你没关闭游标!
#8
wsl0002006-03-16 12:37
我试一下
#9
wsl0002006-03-16 12:41

太好了
加close cur_gzxmmc;就可以了
谢谢你呀
我找了很长时间
都没找出问题是出在这儿

#10
ヤ順祺冄繎ヤ2006-03-16 12:54

没想到被我乱打乱撞,碰到了

#11
wsl0002006-03-16 13:20

根本没想到问题会出现在这儿
总感觉自己写的代码在逻辑上没有问题

#12
ヤ順祺冄繎ヤ2006-03-16 13:50

呵呵...高手一般就是小错误..
一般低手才去注意那些小细节..
我PB不行啊!

1