我从SQL中有一个表格a,我在delphi中用dbgrid显示此表格中的数据,过滤条件就是datetimepickerq中的时间了,表a中的字段a8就是每条记录的时间,我现在如果a8>=datetimepickerq中的时间就显示在dbgrid中,怎样写代码啊??急啊!!!!谢谢各位高手大哥了,我试了好几次都不行,报什么"第一行2006处有错"啊??

解决方案 »

  1.   

    楼主是女孩吧?干程序员这一行第一准则就是遇事不能太急
    在datetimepickerq中的时间都是精确到年、月、日、时分秒的数据。
    datetimepickerq中的onchange事件可以写一些东西,以前做过这样的程序,现在想不起来了楼主最好把你的程序代码拿出来看看
      

  2.   

    OnChange事件里获得当前选择的日期
    procedure TForm1.DateTimePicker1Change(Sender: TObject);
    begin
     showmessage(DateToStr(DateTimePicker1.Date));
    end;
      

  3.   

    我的经验,最好不要写在DatetimePicker的OnChange事件中。OnChange事件主要在下面情况下激发:
    1、焦点离开DTP控件;
    2、在下拉框中选择日期并关闭下拉框时。如果每次在OnChange事件的时候都查询数据库,特别是返回数据量特别大的时候,对用户来说是一种灾难。建议:增加一个单独的“运行”按钮,把DTP中的日期值赋值到SQL语句中,对服务器进行动态查询。
      

  4.   

    with DBGrid1.DataSource.DataSet do
    begin
     Filtered:=false;
     Filter:='a8>='''+FormatDateTime('YY-mm-DD',datetimepickerq.date)+''''';
     Filtered:=true;
    end;
      

  5.   

    我在项目中很少用Filter语句,因为Filter支持的条件格式太少。