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;