原来这个程序用在ACCESS数据库是没问题的,但是我把这个数据库升级到sql2000后,就出现了一些问题:
1、源码编辑状态中打开含有DateTimePicker1控件的窗体时,提示:
CDate是不可以识别的函数名
通过查找发现问题在这一句:
 DateTimePicker1.Date :=Date();
2、编译运行后,提示:
第 1 行: '#' 附近有语法错误
相关代码如下:
begin
 fstr:='SELECT t_saledet.bmh, t_saledet.clabel, t_ware.flh,sum(t_saledet.sl) as esl, sum(t_saledet.sjje) as esjje FROM t_saledet,t_ware'
       +' WHERE t_saledet.clabel=t_ware.clabel and t_saledet.spbh=t_ware.spbh and t_saledet.bmh=''%s'' AND (t_saledet.clabel)=''%s'' AND ([t_saledet.rq])=#%s#'
       +' group by t_saledet.bmh, t_ware.flh, t_saledet.clabel';   
  with aqrytdate do
  begin
    close;
    sql.Clear ;
    sql.Add(Format(fstr,[maskEdit6.text,maskedit5.text,datetostr(DateTimePicker1.Date)]));
    Prepared;
    open;
  end;
请教各位高手,谢谢!!

解决方案 »

  1.   

    sql2000没有cdate函数,你可以用convert方法去转换日期
      

  2.   

    哦,忘了说了aqrytdate的SQL属性是
    SELECT t_saledet.bmh, t_saledet.clabel, t_ware.flh,sum(t_saledet.sl) as esl, sum(t_saledet.sjje) as esjje
    FROM t_saledet,t_ware
    WHERE t_saledet.clabel=t_ware.clabel and t_saledet.spbh=t_ware.spbh and (((t_saledet.bmh)=:vbmh) AND ((t_saledet.clabel)=:vlabel) AND ((CDate([t_saledet.rq]))=:vrq))
    group by t_saledet.bmh, t_saledet.clabel,t_ware.flh;