Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi KB4484218更新后FireDAC MSAcc ODBC驱动程序损坏_Delphi_Ms Access_Firedac - Fatal编程技术网

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

Delphi KB4484218更新后FireDAC MSAcc ODBC驱动程序损坏,delphi,ms-access,firedac,Delphi,Ms Access,Firedac,我的解决方案使用ms access数据库和FireDAC的“MSAcc”驱动程序来访问数据库(*.mdb) 我的一些客户在1月份安装Office windows update后面临问题(请注意,根据计算机上安装的Office版本,同一修补程序可以应用于其他KB。出于参考目的,我将在下面列出它们) 以前在同一台计算机上工作的应用程序现在不再启动,并且在建立数据库连接时失败。 我已经回滚了这个特定的KB,应用程序又开始工作了。 我知道至少还有一家软件供应商受到此问题的影响 我的问题如下: 还有其他

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

我的一些客户在1月份安装Office windows update后面临问题(请注意,根据计算机上安装的Office版本,同一修补程序可以应用于其他KB。出于参考目的,我将在下面列出它们)


以前在同一台计算机上工作的应用程序现在不再启动,并且在建立数据库连接时失败。 我已经回滚了这个特定的KB,应用程序又开始工作了。 我知道至少还有一家软件供应商受到此问题的影响

我的问题如下:

  • 还有其他人受到影响吗
  • 有人知道这是与FireDAC有关还是更广泛的问题吗
  • 有人能从Embarcadero或微软那里找到这方面的信息吗
据我所知,可能引发此问题的更新:

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//.mdb文件的路径
FDConnection1.开放式;
FDQuery1.连接:=FDConnection1;
FDQuery1.SQL.Add('SELECT*FROM'+edit3.Text)//插入列名
FDQuery1.open;
FDQuery1.1;
ShowMessage(FDQuery1.FieldByName(edit2.Text).AsInteger.ToString);
FDConnection1.关闭
在未安装KB4484218的系统上执行上述代码,一切正常,应用程序显示了值。 在应用KB4484218之后,在同一台机器上执行相同的代码,但是,我在“ACECORE.DLL”上遇到了访问冲突

这与微软关于KB4484218的发行说明一致,表明该特定DLL已被修改


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

今天我遇到了完全相同的问题,我解决了它,如下所示:

  • fdphysmsccessdriverlink
    组件放在表单上
  • ODBCDriver
    属性设置为
    Microsoft Access驱动程序(*.mdb)

  • 这就解决了问题,因为ODBC使用了一个微软没有弄糟的旧DLL。

    你需要让你的q更清晰。当我认为你的意思是“开始”时,你用“靴子”这个词。但是,即使你做出了这样的更改,它也似乎是不正确的,因为如果你的应用程序无法启动,它将无法尝试打开与数据库的连接,那么你怎么知道它会失败。你能更准确地描述Firedac的MSAcc驱动程序的问题吗?直到今天,我还看不到任何问题,但我们在这里使用的Office 2019可能不会受到影响。“建立db连接时失败”可能会从显示任何错误消息或描述其失败方式中受益。@SchneiderInfo SystemsLTD请查看我上面的消息,我添加了“更新”节。@Brian刚刚更新了我上面的帖子。这很有效,解决了问题。当使用FireDAC和KB4484218时。对。如果您仍处于开发阶段,则此方法有效。如果像我一样,您的应用程序已经部署到数百个客户的站点,那么这不再是一个选项。