尝试筛选dbgrid时表达式中的Delphi类型不匹配

尝试筛选dbgrid时表达式中的Delphi类型不匹配,delphi,Delphi,当我尝试使用DateTimePicker组件按日期过滤DBGrid时,我遇到了这个错误 表达式中的类型不匹配 代码 procedure TGrupeForm.DateCreatedFilterChange(Sender: TObject); begin if CreatedEditPicker.Date <> Date then begin ClientDataSet1.Filter := 'Created LIKE '+QuotedStr('%

当我尝试使用
DateTimePicker
组件按日期过滤
DBGrid
时,我遇到了这个错误

表达式中的类型不匹配

代码

procedure TGrupeForm.DateCreatedFilterChange(Sender: TObject);
begin
     if CreatedEditPicker.Date <> Date then
      begin
        ClientDataSet1.Filter := 'Created LIKE '+QuotedStr('%'+DateToStr(CreatedEditPicker.Date)+'%');
        ClientDataSet1.Filtered := True;
      end
      else
        ClientDataSet1.Filtered := False;
end;
过程TGrupeForm.DateCreatedFilterChange(发送方:ToObject);
开始
如果CreatedEditPicker.Date,则
开始
ClientDataSet1.Filter:='像'+QuotedStr('%'+DateToStr(CreatedEditPicker.Date)+'%'一样创建');
ClientDataSet1.Filtered:=True;
结束
其他的
ClientDataSet1.Filtered:=False;
结束;

我做错了什么?

除了字符(字符串)类型的字段外,您不能像一样在任何字段上使用。对于数字和日期,您需要使用常规比较运算符>,=,您创建的字段是什么Delphi字段类型?字段是什么数据类型?(这将成为您在Delphi中使用数据库的教程;您真的应该在网上或文档中找到一个。)您也不可能同时使用所有这些Delphi版本-停止随机添加标记,因为名称很熟悉。特别是在Delphi中,如果您的问题专门针对单个版本中的功能,并且这个问题不包含任何特定于版本的内容,那么您只需要特定于版本的标记。我已经删除了4个不必要的标记。此外,除了字符字段外,您不能像那样对任何内容使用
;它不适用于日期或数字。对于日期和数字,请使用>,>=,=,请参阅一个类似的问题,该问题解释了如何使用TClientDataSet的filter属性。@Ivan我建议您编辑该问题并添加相关信息,如新字段的类型。
procedure TGrupeForm.DateCreatedFilterChange(Sender: TObject);
begin
  if CreatedEditPicker.Date <> Date then
  begin
    ClientDataSet1.Filter := 'Created = ' + QuotedStr(DateToStr(CreatedEditPicker.Date));
    ClientDataSet1.Filtered := True;
  end
  else
    ClientDataSet1.Filtered := False;
end;
ClientDataSet1.Filter := 'ID = ' + IntToStr(Value);