String czy,sle
Datetime intime
long curnum
sle = ddlb_czy.text;
SELECT "czrzb"."czydm", //返回操作员代码
"czrzb"."in_time", //返回登录系统时间
"czrzb"."cur_num" //返回序号
INTO :czy,
:intime,
:curnum
FROM "czrzb" //日志表
WHERE "czrzb"."czydm" = :sle; //限制条件
dw_1.settransobject(sqlca) //
dw_1.retrieve( )//检索数据
我想把日志表的上面三列显示在数据窗口上,条件是下拉框的操作员代码。
在执行这段代码后,数据窗口显示是日志全部的内容,例如,我本只想显示操作代码为“5555”的数据,上面代码执行的不只操作员代码为“5555”,还包括“8888”等的数据都显示出来。限制条件不起作用,WHY?谢谢!
------解决方案--------------------
这样写法根本没有给retrieve传参数,而且dw_1的datawindow也没有设置参数
解决办法有两个:
1、在dw_1的datawindow里加上那3个检索参数,然后
dw_1.retrieve(czy,intime,curnum )//检索数据
2、datawindow不用改,动态设置语法,你可以把这段替换你原来的试试
string sle
sle = ddlb_czy.text;
string ls_sql
ls_sql=dw_1.getsqlselect()
ls_sql=ls_sql+" where czydm='"+sle+"'"
dw_1.setsqlselect(ls_sql)
dw_1.settransobject(sqlca) //
dw_1.retrieve( )//检索数据
然后你弄懂了,再用3个条件的