读书人

真正能给出小弟我答案的人小弟我给2

发布时间: 2012-02-02 23:57:14 作者: rapoo

真正能给出我答案的人,我给200元,电汇,绝不失言
下面是我的代码
ddplb_username.reset( )
int i,m
datastore ds_1
string sql, syn, err, str_department
str_department= this.text
ds_1 = CREATE datastore
sql = "select login_name from t_operatorinfo ,t_deptinfo where t_deptinfo.dept_id=t_operatorinfo.dept_id and t_deptinfo.dept_name= ' " + str_department+ " ' "
syn = SQLCA.SyntaxFromSQL(sql, "style(type=grid) ",err)
ds_1.Create(syn)
ds_1.settransobject(sqlca)
m = ds_1.retrieve( )
if m > 0 then
for i = 1 to m
ddplb_username.additem(ds_1.getitemstring(i, "login_name ")) //注意这一行
next
end if

destroy ds_1


每次我运行到ddplb_username.additem(ds_1.getitemstring(i, "login_name "))行的时候都提示 Invalid DataWindow row/column specified at line 14 in selectionchanged event of object ddplb_department of w_log的错误,据我掌握的出现这种问题的原因如下:
1、login_name不是字符串类型
2、在ds_1中根本就没有名字为login_name的列名
3、循环变量m越界

但上述出现问题的原因都被我排除了,后抱着试试看的态度,我把
ddplb_username.additem(ds_1.getitemstring(i, "login_name "))
这一行的代码改成了ddplb_username.additem(ds_1.getitemstring(i,1)),程序就通过了,请问中哪位高手能给俺指条明路,为什么ddplb_username.additem(ds_1.getitemstring(i, "login_name "))这么写就是不行呢????????????????????????????????

[解决办法]
这么简单的问题……
因为你是动态创建的dw,所以虽然你select login_name
但ds中的列名不一定是login_name,就你的情况,
你选择了2个表,一般是表明+列名
你实际describe( '#1.name ')可以看到具体是啥
[解决办法]
ddplb_username.additem(ds_1.getitemstring(i,ds_1.describe( "#1.name "))) //注意这一行

读书人网 >PB

热点推荐