在XE5 Delphi工作。对于给定的ClientDataSet,这个过滤器正在工作:像'18%'一样的带
但这一条并非如此:带类似于“1%”。同时,像‘%8’的表带工作得很好,但是像‘%18’的表带不能工作。带字段有一个字符串类型,总是有17个字符(从不为空)。
每次错误是一个(窗口) "c0000005访问冲突“,但这是没有意义的,因为,然而,像'%18%'或'%1%'或'%8%'这样的带都能正常工作。数据确实存在,程序可以访问它们。当错误出现时,堆栈保持在midas.dll上,但这是注册的,并且可以与其他筛选模式一起工作。
数据集中所有字段的行为相同。作为'x%'或'%xx'的筛选模式不工作(其中x是一个字符),所有其他模式都工作。
这是怎么回事?
发布于 2014-01-09 12:43:58
如果在安装Delphi时选择安装旧的和难看的XE5,它将在系统目录(根据32位或64位Windows)上安装一个旧的midas.dll库(日期为8/9/2002) (检查Windows\ system 32或Windows\SysWOW64 64)。
您必须替换(或者更好地删除)这个旧的midas.dll,并使用Delphi附带的正确版本。您将在Program (x86)\embarcadero\rad studio\12.0\redist\win32 32目录中找到它。
发布于 2014-01-10 17:25:46
midas.dll是一个自注册dll,所以它是在第一次使用时注册的,无论您是否包含或复制到您的应用程序的同一个目录,您都必须从您的系统中替换每个旧的midas.dll,或者在它注册的地方签入
https://stackoverflow.com/questions/20889785
复制相似问题