[ODBC]读Excel时报错:外部数据库驱动程序(1)中的意外错误解决方案

在MFC下通过ODBC访问Excel数据时遇到错误,该错误由Windows安全更新触发。解决方法包括:1. 卸载特定的安全更新;2. 修改注册表,替换旧版msexcl40.dll;3. 安装Access Database Engine 2010 Redistributable,更新连接字符串为使用Microsoft.ACE.OLEDB.12.0提供程序。
部署运行你感兴趣的模型镜像

在MFC下使用ODBC读取Excel数据库,之前用着还好好的,突然就用不了了,几经查找发现是Windows安全更新的补丁搞的鬼。

出现错误:
ODBC ERROR


解决方案:
1. 在控制面板——卸载——已安装更新,找到并删除以下安全更新:

SystemPatch NumUninstall Command
Windows 7 、Windows Server 2008 R2KB4041681wusa /uninstall /kb:4041681
Windows 8 、Windows Server 2012KB4041693wusa /uninstall /kb:4041693
Windows 10 V1607 、 Windows Server 2016KB4041691wusa /uninstall /kb:4041691
Windows 10 V1703KB4041676wusa /uninstall /kb:4041676

或者以管理员权限运行cmd,并执行wusa /uninstall命令卸载,然后重启即可。
这里写图片描述

2. 修改注册表(非专业人员慎用)
- 找到老版本的(4.0.9801.0) msexcl40.dll
- 复制到另一个目录(比如:C:\ProgramData\JET_Fix\msexcl40.dll)
- 将HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Excel\win32的值修改成C:\ProgramData\JET_Fix\msexcl40.dll
JetFix

3. 安装新的数据库引擎AccessDatabaseEngine
安装Microsoft Access Database Engine 2010 Redistributable并使用新的provider连接

将连接串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\test.xls;Extended Properties=”Excel 8.0”;
改为
Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\test.xls;Extended Properties=”Excel 8.0”;


参考:
https://social.msdn.microsoft.com/Forums/sqlserver/en-US/55b1d633-b715-491e-917e-b7cb01ae0523/error-in-windows-update-kb4041681-unexpected-error-from-external-database-driver-1?forum=sqldataaccess

您可能感兴趣的与本文相关的镜像

ACE-Step

ACE-Step

音乐合成
ACE-Step

ACE-Step是由中国团队阶跃星辰(StepFun)与ACE Studio联手打造的开源音乐生成模型。 它拥有3.5B参数量,支持快速高质量生成、强可控性和易于拓展的特点。 最厉害的是,它可以生成多种语言的歌曲,包括但不限于中文、英文、日文等19种语言

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值