Delphi:找不到字段'False'.只发生在我的电脑上

Jim*_*bot 3 delphi delphi-xe4

我有一个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'.相同的代码在我的同事计算机上编译和运行完全正常,但不是我的.我想念的某个地方必须有一个选项吗?

请记住,代码还可以正常工作......

Uwe*_*abe 7

用于处理过滤器字符串的TExprParser实例依赖于作为STextTrueSTextFalse给出的资源字符串.您可能有另一种语言,而不是为IDE库配置的英语.尝试切换到英语并查看错误是否消失.

要解决该问题,通常将文本"False"替换为resourcestring STextFalse的内容.

顺便说一句,这在后来的Delphi版本中得到了纠正,即使在非英语环境中也接受字面上的"假".

  • 在Delphi bin文件夹中执行BdsSetLang.exe.这允许分别选择IDE语言和库语言.图书馆语言在这里是相关的. (2认同)
  • 您可以检查搜索路径,查看Data.DBConsts的意外副本. (2认同)