我有一个 TClientDataset 可以包含非 ascii 字符的列名。似乎我无法过滤这些列。这是一个示例代码:
uses
DB, DBClient;
{$R *.dfm}
procedure TForm34.FormActivate(Sender: TObject);
var
MyDataset: TClientDataSet;
begin
MyDataset := TClientDataSet.Create(nil);
with MyDataset.FieldDefs.AddFieldDef do
begin
Name := 'PLACÓWKA';
DataType := ftString;
end;
MyDataset.CreateDataSet;
MyDataset.Open;
MyDataset.Append;
MyDataset.Fields[0].Value := 'Value_1';
MyDataset.Post;
MyDataset.Append;
MyDataset.Fields[0].Value := 'Value_2';
MyDataset.Post;
MyDataset.Filter := 'PLACÓWKA LIKE ''%Value_1%''';
MyDataset.Filtered := True; //Exception here: Field 'PLAC' not found
end;
设置后MyDataset.Filtered := True
出现异常,提示未找到“PLAC”字段。
据我所知,问题在于单元中的方法TExprParser.SetExprParams
无法DBCommon
正确解析过滤器文本。
除了重命名列之外,我还能做些什么吗?