【问题标题】:ODBC Excel Driver: Unexpected error from external database driverODBC Excel 驱动程序:来自外部数据库驱动程序的意外错误
【发布时间】:2018-03-24 06:02:37
【问题描述】:

自 10 月 10 日 Windows 更新以来,ODBC Excel 驱动程序已停止工作。尝试读取文件时出现以下错误:

“来自外部数据库驱动程序的意外错误 (1)”

我们使用带有以下连接字符串的 ADO 连接在 Delphi 中打开 Excel 文件:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";

我可以通过切换到 Microsoft.ACE.OLEDB.12.0 来使其工作,但要使其工作,我们所有的客户都必须在他们使用我们软件的所有计算机上安装 Microsoft Access Database Engine Redistributable。

有人有其他解决方案或解决方法吗?提前致谢。

【问题讨论】:

  • 等等,或者催促微软(这是一个新问题)。它与德尔福无关。我猜是你在this thread发帖吧?
  • 是的,就是我。我认为这与 Delphi 无关,但也许有人有特定于 Delphi 的解决方案(如替代组件或 FireDAC)。
  • 好吧,至多是替代 ODBC 驱动程序。目前尚不清楚问题出在驱动程序还是 Access 应用程序上。只有微软知道。
  • 讨论了相应的问题here

标签: excel delphi odbc ado delphi-10.1-berlin


【解决方案1】:

在客户机器上,我已卸载最后一个 Microsoft 补丁附带的 KB4041681 (Windows 7)。 在我的机器上,我已经卸载了 KB4041676 (Windows 10)。 之后,Microsoft.Jet.OLEDB.4.0 现在可以工作了。

希望微软能尽快修复这个bug。

【讨论】:

  • 谢谢。我们目前还建议我们的客户卸载补丁。
  • 如果您的系统是Windows 8.1,那么您需要卸载KB4041693。
  • @donhauro 我已卸载 KB4041681 (Windows 7),但仍面临“来自外部数据库驱动程序的意外错误”。你能推荐我其他的替代品吗?
  • 您能否确保您已禁用 Windows 中的自动更新功能?顺便说一句:微软似乎正在研究这个话题。 support.microsoft.com/de-de/help/4041681/…
【解决方案2】:

只有一种解决方案。替换"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\MyExcel.xls; Extended Properties=\"Excel 12.0;HDR = YES; 进行此更改后,您必须在客户计算机上安装来自link 的 2007 Office System 驱动程序:数据连接组件。

【讨论】:

    【解决方案3】:

    我 3 年来开发的 2 个应用程序(c# 和 java)遇到了同样的问题。 自 2017 年 10 月 10 日以来,我无法导出到 excel 2003,但 2007 可以使用,也无法从 excel 2003 导入,但 2007 也可以导入。

    在 ArcGIS Desktop 10.5.1 中由 ESRI(最流行的地理处理软件)无法打开 excels 2003 和 .mdb 文件。

    临时解决办法:在windows 8.1(可能是w10)中卸载KB4041693、KB4041687。

    在这两条路径的 microsoft 更改日志中,都提到了“更新 [...] 和 microsoft jet 的安全更新”。 卸载重启后所有软件都恢复正常了。

    这个问题是在 2017 年 10 月 10 日引入的。 在 microsoft 论坛中报告了这个问题(kb4041693 应该“修复”它但仍然不起作用)。 也许几周后他们会(正确地)解决这个问题。

    【讨论】:

      【解决方案4】:

      对我来说,它按照以下步骤工作:

      ps.:我们有一个 Windows Server 2008R2

      1 – 下载并安装:https://www.microsoft.com/en-us/download/details.aspx?id=23734 2 – 打开 .dtsx 文件并更改 Excel 连接。在属性对话框中,单击 ConnectionString 属性中的三个点并将其更改为 Microsoft Excel 2007。这将自动将您的连接字符串更改为: Provider=Microsoft.ACE.OLEDB.12.0;Data Source={YOURPATH};Extended Properties=”Excel 12.0 XML;HDR=YES”; 3 – 我们的一些 .dtsx 文件指向一个配置文件(通常具有 .dtsConfig 扩展名)。我还更改了这些人以指向正确的提供程序(几乎复制并粘贴了我从 Visual Studio 获得的连接字符串)

      在此之后,我再次运行 SQL 作业,它运行良好。

      【讨论】:

        【解决方案5】:

        如果您使用的是 SSIS 包,请在 Excel 源或 Excel 目标中将您的 Excel 工作表版本 2003 更改为 2007。通常由于 excel 版本而出现此问题。

        【讨论】:

          【解决方案6】:

          我遇到了同样的问题。更改了 Excel 目标中的 Excel 2007。有效。这与更改 provider=Microsoft.ACE.OLEDB.12.0 相同。

          【讨论】:

            【解决方案7】:

            这里是解决方案...我在另一个论坛中找到了它并且对我来说非常适合... 它将工作 100%

            如下所述:

            https://forums.embarcadero.com/thread.jspa?messageID=902557&tstart=0

            https://forum.kanors-emr.org/showthread.php?tid=571&pid=2652#pid2652

            KB4041681 安装 msexcl40.dll 的 4.0.9801.1 版本。

            1. 查找 msexcl40.dll 的先前版本 (4.0.9801.0)

            2. 放在另一个目录中。他们建议应用程序目录,但由于在下一步中您将修改注册表以指向此旧版本,因此它可能会去任何地方。

            3. 更新注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel\win32 以指向步骤 2 中的位置。

            【讨论】:

              【解决方案8】:

              卸载这些更新(根据您的操作系统),您的代码将开始正常运行

              • KB4041681 - Windows 7 SP1 和 Windows Server 2008 R2 SP1
              • KB4041690 -Windows Server 2012
              • KB4041693 - Windows 8.1 和 Windows Server 2012 R2
              • KB4041678 - 对我来说这是个问题

              https://support.microsoft.com/en-in/help/4041678/windows-7-update-kb4041678

              【讨论】:

                【解决方案9】:

                此问题是由 Microsoft Office 的最近更新引起的。目前没有替代解决方案。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2017-12-17
                  • 1970-01-01
                  • 2018-03-24
                  • 2022-08-06
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  相关资源
                  最近更新 更多