读书人

麻烦看看这个查询脚本有什么有关问题

发布时间: 2012-02-16 21:30:36 作者: rapoo

麻烦各位高手看看这个查询脚本有什么问题
这是我写的一个查询按钮的脚本,其中的时间查询不起作用,麻烦各位帮忙看看,谢谢啦!!!!
string f,s,r_shbj
date r_rqmin,r_rqmax
f="(rkbh like '%"+ddlb_rkdh.text+"%') or(spbh like '%"+ddlb_spbh.text+"%')"
r_rqmin=date(em_min.text )
r_rqmax=date(em_max.text)
s=("rkrq>='"+string(r_rqmin)+"' and rkrq<='"+string(r_rqmax)+"'")
select shbj into :r_shbj from wgrkd;
if rb_wsh.checked=true then
r_shbj='N'
elseif rb_ysh.checked=true then
r_shbj='Y'
else
r_shbj='%'
end if
dw_wgrk.setfilter(f)
dw_wgrk.filter()

[解决办法]
提示数据类型不匹配。
如果rkrq是date型的
如果是sqlserver数据库改为
s = "(convert(char(10),rkrq,102)>='"+string(r_rqmin,yyyy.mm.dd)+"' and "&
+" convert(char(10),rkrq,102<='"+string(r_rqmax,yyyy.mm.dd)+"')"
如果是Oracle数据库改为
s = "(to_char(rkrq,yyyy.mm.dd)>='"+string(r_rqmin,yyyy.mm.dd)+"' and "&
+" to_char(rkrq,yyyy.mm.dd)<='"+string(r_rqmax,yyyy.mm.dd)+"')"
另外真没看出s变量在哪用到的,你的引号怎么跑到括号里了?
select shbj into :r_shbj from wgrkd; 没有Where 条件确保查询出是一条记录不然也出错。

[解决办法]
yyyy.mm.dd要加引号
[解决办法]
convert是SQL的函数,放在filter里不认的

s = "string(rkrq,'yyyy.mm.dd')>='"+string(r_rqmin,"yyyy.mm.dd")+"' and "&
+" string(rkrq,'yyyy.mm.dd')<='"+string(r_rqmax,"yyyy.mm.dd")+"'"
还有,连着两个setfilter,那前一个f就不起作用了

读书人网 >PB

热点推荐