我的解决方案使用ms-access数据库和FireDAC的'MSAcc'驱动程序来访问数据库(* .mdb)。
自从为Office安装一月份的Windows更新以来,我的一些客户遇到了问题(KB4484218-请注意,根据计算机上安装的Office版本,相同的修补程序可以与另一个KB一起应用。出于参考目的,我将在下面列出)。
曾经在同一台计算机上工作的应用程序现在不再启动,并且在建立数据库连接时失败。我已经回滚了这个特定的知识库,并且该应用程序再次可以工作。我知道至少有其他软件供应商受此问题影响。
我的问题如下:
据我所知,可能触发此问题的更新:
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位版本
UPDATE:根据要求,这里提供有关此问题的更多上下文和信息。
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的实现。
我的解决方案使用ms-access数据库和FireDAC的'MSAcc'驱动程序来访问数据库(* .mdb)。自从为Office安装一月份的Windows更新(...
今天,我遇到了完全相同的问题,并且解决了,就像这样:1.将FDPhysMSAccessDriverLink组件放在表单上。2.将“ ODBCDriver”属性设置为“ Microsoft Access Driver(* .mdb)”
这解决了问题,因为那时ODBC使用了Microsoft没有弄乱的旧DLL。