0

在 XE5 Delphi 中工作。对于给定的 ClientDataSet,此过滤器正在工作:Strap LIKE '18%'

但是这个没有:Strap LIKE '1%'。同时Strap LIKE '%8'工作正常,但Strap LIKE '%18' 不能。Strap 字段具有字符串类型,始终为 17 个字符(从不为空)。

每次错误都是 (windows) "c0000005 access violation",但这是无意义的,因为Strap LIKE '%18%'Strap LIKE '%1%'Strap LIKE '%8%' ALL 工作美好的。数据确实存在,程序可以访问它们。当错误出现时,堆栈保留在midas.dll上,但这已注册并与其他过滤器模式一起正常工作。

数据集中所有字段的行为相同。过滤模式为'x%''%xx'不起作用(其中 x 是一个字符),所有其他的都起作用。

怎么了?

4

2 回答 2

1

如果在安装 Delphi XE5 期间您选择安装旧的和丑陋的 BDE,它将在系统目录中安装一个旧的 midas.dll 库(日期 8/9/2002)(检查 Windows\system32 或 Windows\SysWOW64 取决于 32或 64 位 Windows)

您必须替换(或最好删除)这个旧的 midas.dll 并使用 Delphi 附带的正确版本。您将在 Program files (x86)\embarcadero\rad studio\12.0\redist\win32 目录中找到它。

于 2014-01-09T12:43:58.190 回答
0

midas.dll是一个自注册的dll,所以第一次使用就注册了,无论你是包含还是复制到你的App的同一个目录下,你都必须从你的系统中替换掉所有旧的midas.dll或者在Windows中签入注册的地方

于 2014-01-10T17:25:46.713 回答