Delphi KB4484218更新后FireDAC MSAcc ODBC驱动程序损坏
我的解决方案使用ms access数据库和FireDAC的“MSAcc”驱动程序来访问数据库(*.mdb) 我的一些客户在1月份安装Office windows update后面临问题(请注意,根据计算机上安装的Office版本,同一修补程序可以应用于其他KB。出于参考目的,我将在下面列出它们)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,应用程序又开始工作了。 我知道至少还有一家软件供应商受到此问题的影响 我的问题如下: 还有其他
以前在同一台计算机上工作的应用程序现在不再启动,并且在建立数据库连接时失败。 我已经回滚了这个特定的KB,应用程序又开始工作了。 我知道至少还有一家软件供应商受到此问题的影响 我的问题如下:
- 还有其他人受到影响吗
- 有人知道这是与FireDAC有关还是更广泛的问题吗
- 有人能从Embarcadero或微软那里找到这方面的信息吗
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时。对。如果您仍处于开发阶段,则此方法有效。如果像我一样,您的应用程序已经部署到数百个客户的站点,那么这不再是一个选项。