我有一个TCustomClientDataSet(在内存中)用于在Delphi程序中进行一些过滤.
我的过滤代码如下:
CDSFilteredGroup.Filter := 'ACP_type = 1 AND ACP_by_default <> False';
CDSFilteredGroup.Filtered := True;
Run Code Online (Sandbox Code Playgroud)
当我编译并运行它时,我只在我的计算机上安装了Delphi(XE4)时出现以下错误:
CDSFilteredGroup: Champ 'False' non trouvé.
Run Code Online (Sandbox Code Playgroud)
翻译:未找到Field'False'.相同的代码在我的同事计算机上编译和运行完全正常,但不是我的.我想念的某个地方必须有一个选项吗?
请记住,代码还可以正常工作......
用于处理过滤器字符串的TExprParser实例依赖于作为STextTrue和STextFalse给出的资源字符串.您可能有另一种语言,而不是为IDE库配置的英语.尝试切换到英语并查看错误是否消失.
要解决该问题,通常将文本"False"替换为resourcestring STextFalse的内容.
顺便说一句,这在后来的Delphi版本中得到了纠正,即使在非英语环境中也接受字面上的"假".