Filter是在已select的数据里筛选数据,不再从数据库里 select

could not convert variant of type(NULL) into type(OleStr)

 问题出在

 如果 筛选出Column.Field.Value为 空值,不能转为 OleStr类型,要用VarToStrDef进行转换。

可以用来实时 筛选 数据

procedure TForm13.Edit2Change(Sender: TObject);
begin
  FDQuery1.Filter:=' username like ''%'+ edit2.Text+'%''';
end;

 

 

 

procedure TMainForm.UniButton5Click(Sender: TObject);
begin
  UniMainModule.FDQuery1.SQL.Text :='SELECT * FROM user ';
  UniMainModule.FDQuery1.Open();
UniMainModule.FDQuery1.Filter := 'id >= 2';
UniMainModule.FDQuery1.Filtered := True;
if UniMainModule.FDQuery1.FindFirst then
   repeat
      unilistbox1.Items.Add(UniMainModule.FDQuery1.Fields.Fields[1].AsString) ;
   until not UniMainModule.FDQuery1.FindNext
end;