DIS工作室

连接ACCESS数据库时"未找到提供程序.该程序可能未正确安装"的解决

出现错误:ADODB.Connection   错误   '800a0e7a'     
    
未找到提供程序。该程序可能未正确安装。     

我的连接字符串是  ConnStr = "Provider = Microsoft.Jet.OLEDB.4.0;Data Source = " & Server.MapPath(mdbfile)


有点怪哦~因为我知道windows2000以来,应该是已经安装好ado驱动的,使用OLEDB4.0肯定应该没问题。为什么xp不行呢?
(事后补充:上网查了一下,发现许多人都遇到同样问题,好多贴子写着“跪求”、“急问”等字样,回答的人不是说装mdac就是说装office或sqlserver客户端,还有一个人提到修改C:\WINDOWS\WinSxS文件夹的Users权限。但后面的努力证明,这些方法都没有效果。)
没关系,我找到delphi7.0安装盘上的mdac2.7的安装程序装了一遍,还是同样错误。奇怪啊奇怪。
使用自己写的一个测试ado驱动的小工具adohelper.exe查了一下,发现果然在ado驱动列表中,没有oledb4.0这一项。
没关系。大不了装一遍office2003罗。耐着性子装完,重启。再次打开网页之前,我检查了一下,不好,还是没有那个驱动。果然,网页依然报同样错误。
这下麻烦了。难道要我装一个windows2003吗?已经半夜了,明天就用,装个系统怎么着也得一个多小时吧。。。
不甘心。

 

解决方法一

运行regedit,查找“Microsoft.Jet.OLEDB.4.0”。来到HKEY_CLASSES_ROOT\CLSID\{dee35070-506b-11cf-b1aa-00aa00b8de95}下面,有个分枝InprocServer32,内容居然就是:C:\WINDOWS\system32\msjetoledb40.dll。
难道是它吗?试一下吧。复制这个文件到有问题的电脑中,运行
regsvr32 C:\WINDOWS\system32\msjetoledb40.dll

 

解决方法二

重新安装一下MDAC 2.8

并注册一下REGSVR32 "C:\Program Files\Common Files\System\ole db\MSDASQL.DLL

如果是XP SP2,不能重新安装MDAC 2.8

这样就找个灰色按钮客星2.1,就可以安装,安装完后重启电脑

 

0x800A0E7A

卸载了几个程序,然后对自己的程序进行调试的时候发现数据库连接失败,出现0x800A0E7A错误。肯定是某些组件刚才被卸载掉了,于是上网搜索了一番。很多帖子都说是sqloledb.dll 需要重新注册,于是注册掉。结果还是不行。后来发现还有个动态库需要注册那就是oledb32.dll。把这两个都注册了,再试了下自己的程序,OK了。

regsvr32  "C:/Program Files/Common Files/System/Ole DB/oledb32.dll"

regsvr32  "C:/Program Files/Common Files/System/Ole DB/sqloledb.dll"

 

0x80040154

同样是卸载了一些程序,结果ADO都初始化不了,唉,就是msado15.dll 又被注销了。重新注册下吧

regsvr32  "C:/Program Files/Common Files/System/ado/msado15.dll"

技术文摘

联系我们

地址: 江苏省常州市

QQ: 79232781

联系人: DIS工作室

电话: 13585315012

邮箱: disstudio@yeah.net