KB4484218更新后,FireDAC MSAcc ODBC驱动程序损坏

问题描述 投票:0回答:1

我的解决方案使用ms-access数据库和FireDAC的'MSAcc'驱动程序来访问数据库(* .mdb)。

自从为Office安装一月份的Windows更新以来,我的一些客户遇到了问题(KB4484218-请注意,根据计算机上安装的Office版本,相同的修补程序可以与另一个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位版本

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'上出现访问冲突]

Access violation

这与Microsoft的KB4484218发行说明一致,表明该特定的DLL已被修改。

[我敢打赌,MS确实修改了MS Access驱动程序的此组件。因此至少破坏了FireDAC的实现。

我的解决方案使用ms-access数据库和FireDAC的'MSAcc'驱动程序来访问数据库(* .mdb)。自从为Office安装一月份的Windows更新(...

delphi ms-access firedac
1个回答
0
投票

今天,我遇到了完全相同的问题,并且解决了,就像这样:1.将FDPhysMSAccessDriverLink组件放在表单上。2.将“ ODBCDriver”属性设置为“ Microsoft Access Driver(* .mdb)”

这解决了问题,因为那时ODBC使用了Microsoft没有弄乱的旧DLL。

© www.soinside.com 2019 - 2024. All rights reserved.