【发布时间】:2020-01-28 09:51:26
【问题描述】:
我的解决方案使用 ms-access 数据库和 FireDAC 的“MSAcc”驱动程序来访问数据库 (*.mdb)。
我的一些客户在为 Office 安装 1 月 Windows 更新后遇到了问题 (KB4484218 - 请注意,根据计算机上安装的 Office 版本,相同的补丁可能会应用于另一个 KB。仅供参考我会在下面列出它们)。
以前在同一台计算机上运行的应用程序现在不再启动,并且在建立数据库连接时失败。 我已经回滚了这个特定的 KB,并且应用程序再次运行。 我知道至少有一家其他软件供应商受到此问题的影响。
我的问题如下:
- 还有其他人受此影响吗?
- 有人知道这是与 FireDAC 相关还是更广泛的问题?
- 有人能从 Embarcadero 或 Microsoft 找到这方面的信息吗?
据我所知可能引发此问题的更新:
Office 2010:Office 2010 安全更新说明 (KB4484127)
Office 2013:Office 2013 安全更新说明 (KB4484119)
Office 2016:Office 2016 安全更新说明 (KB4484113)
Office 2016 (KB4484218) 32 位版
Office 2016 (KB4464586) 32 位版
Office 2016 (KB4484168) 32 位版
更新: 根据要求,这里有更多关于此问题的上下文和信息。
FDConnection1.Params.DriverID := 'MSAcc';
FDConnection1.Params.Database := Edit1.Text; //path to .mdb file
FDConnection1.Open;
FDQuery1.Connection := FDConnection1;
FDQuery1.SQL.Add( 'SELECT * FROM ' + edit3.Text); //insert column name
FDQuery1.open;
FDQuery1.first;
ShowMessage(FDQuery1.FieldByName(edit2.Text).AsInteger.ToString);
FDConnection1.Close
在未安装 KB4484218 的系统上执行上述代码,一切正常,应用程序显示该值。 但是,在应用 KB4484218 后在同一台机器上执行相同的代码时,我在 'ACECORE.DLL' 上遇到访问冲突
这与 Microsoft 的 KB4484218 发行说明一致,表明此特定 DLL 已被修改。
我敢打赌,MS 确实修改了 MS Access 驱动程序的这个组件。因此至少破坏了 FireDAC 的实现。
【问题讨论】:
-
你需要让你的q更清晰。当我认为您的意思是“开始”时,您会使用“靴子”一词。但是,即使您进行了更改,它似乎也不正确,因为如果您的应用程序无法启动,它就不会尝试打开与数据库的连接,所以您怎么知道那会失败。
-
您能否更准确地描述 Firedac 的 MSAcc 驱动程序的问题?直到今天我还看不到任何问题,但我们在这里使用的 Office 2019 可能不会受到影响。
-
“建立数据库连接时失败”可以从显示任何错误消息或描述它如何失败中受益。
-
@SchneiderInfosystemsLtd 请看我上面的消息,我添加了“更新”部分。
-
@Brian 刚刚更新了我上面的帖子。