下载的源码,原来是用ACCESS数据库,但当我转换成SQL2000后,运行到下面的语句时
fstr:='SELECT t_saledet.bmh, t_saledet.rq, t_saledet.sj, t_saledet.jyh, t_saledet.yyyh, t_saledet.skyh, t_saledet.spbh, t_saledet.sl, t_saledet.lsj, t_saledet.sjje, t_saledet.zke, t_saledet.clabel, t_ware.flh, t_spec.cname'
+' FROM t_saledet INNER JOIN (t_spec INNER JOIN t_ware ON (t_spec.cstyle = t_ware.flh) AND (t_spec.clabel = t_ware.clabel)) ON (t_saledet.clabel = t_ware.clabel) AND (t_saledet.spbh = t_ware.spbh)'
+' where t_saledet.bmh like ''%s'' AND t_saledet.jyh like ''%s'' AND ([t_saledet.rq])>=#%s# and ([t_saledet.rq])<=#%s#'
+' order by t_saledet.bmh,t_saledet.rq,t_saledet.sj';
t_saledet.skyh, t_saledet.spbh, t_saledet.sl, t_saledet.lsj, t_saledet.sjje, t_saledet.zke, t_saledet.clabel, t_ware.flh, t_spec.cname';
with ADOQuery2 do
begin
close;
sql.Clear ;
sql.Add(Format(fstr,[chHeadUnit.getbmh(ComboBox1.text)+'%',trim(edit1.text)+'%',datetostr(DateTimePicker1.Date),datetostr(DateTimePicker2.Date)]));
Prepared;
open;
end;
提示:
第一行:"#"附近有语法错误
有人说日期查询直接去掉#,但又提示:列名t_saledet.rq无效!怎么解决这个问题?谢谢!!
fstr:='SELECT t_saledet.bmh, t_saledet.rq, t_saledet.sj, t_saledet.jyh, t_saledet.yyyh, t_saledet.skyh, t_saledet.spbh, t_saledet.sl, t_saledet.lsj, t_saledet.sjje, t_saledet.zke, t_saledet.clabel, t_ware.flh, t_spec.cname'
+' FROM t_saledet INNER JOIN (t_spec INNER JOIN t_ware ON (t_spec.cstyle = t_ware.flh) AND (t_spec.clabel = t_ware.clabel)) ON (t_saledet.clabel = t_ware.clabel) AND (t_saledet.spbh = t_ware.spbh)'
+' where t_saledet.bmh like ''%s'' AND t_saledet.jyh like ''%s'' AND ([t_saledet.rq])>=#%s# and ([t_saledet.rq])<=#%s#'
+' order by t_saledet.bmh,t_saledet.rq,t_saledet.sj';
t_saledet.skyh, t_saledet.spbh, t_saledet.sl, t_saledet.lsj, t_saledet.sjje, t_saledet.zke, t_saledet.clabel, t_ware.flh, t_spec.cname';
with ADOQuery2 do
begin
close;
sql.Clear ;
sql.Add(Format(fstr,[chHeadUnit.getbmh(ComboBox1.text)+'%',trim(edit1.text)+'%',datetostr(DateTimePicker1.Date),datetostr(DateTimePicker2.Date)]));
Prepared;
open;
end;
提示:
第一行:"#"附近有语法错误
有人说日期查询直接去掉#,但又提示:列名t_saledet.rq无效!怎么解决这个问题?谢谢!!
and t_saledet.rq between '2011-03-01' and '2011-03-31'
...
或者...
and t_saledet.rq>= '2011-03-01' and t_saledet.rq<= '2011-03-31'
...
+' where t_saledet.bmh like ''%s'' AND t_saledet.jyh like ''%s'' AND ([t_saledet.rq])>=''%s'' and ([t_saledet.rq])<=''%s'''
fstr:='....AND ([t_saledet.rq])>=#%s# and ([t_saledet.rq])<=#%s#'
...................
sql.Add(Format(fstr,[chHeadUnit.getbmh(ComboBox1.text)+'%',trim(edit1.text)+'%',datetostr(DateTimePicker1.Date),datetostr(DateTimePicker2.Date)]));
sql.Add(Format(fstr,[chHeadUnit.getbmh(ComboBox1.text)+'%',trim(edit1.text)+'%',datetostr(DateTimePicker1.Date),datetostr(DateTimePicker2.Date)]));
Project->Option->Compiler选项卡里把Huge Strings给选上