Microsoft OLE DB Provider for ODBC Drivers 错误 ✀80004005✀ [Microsoft][ODBC

2024-12-29 03:24:35
推荐回答(5个)
回答1:

“Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC”,此问题的原因:没有正确注册某些动态链接库文件(.dll文件)。

解决的方法和操作步骤如下:

1、首先,按键盘“win+r”打卡“运行”窗口,如下图所示。

2、其次,在输入框中输入“cmd”命令并回车确定,如下图所示。

3、接着,弹出“命令运行符”窗口,依次输入命令“regsvr32 Softpub.dll”、“regsvr32 Wintrust.dll”、“regsvr32 Initpki.dll”,每输入一个命令回车一次,如下图所示。

4、最后,弹出如下对话框,表明问题已解决,如下图所示。

回答2:

“Microsoft OLE DB Provider for ODBC Drivers (0x80004005) 错误的解决办...
错误类型一:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] 不能更新。数据库或对象为只读。
错误类型二:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process

0x728 Thread 0x854 DBC 0x276fb44 Jet'。
错误类型三:
“Microsoft OLE DB Provider for ODBC Drivers (0x80004005) 操作必须使用一个可更新的查询”
-------------------------------------------------------------------

当你使用ASP连接数据库时可能会出现这种情况,为什么呢?因为您数据库文件所在的目录权限对特定的用户没有开启足够的权限,你只能进行只读访问,一般出现这种情况的文件系统为NTFS,那怎么解决呢?
首先,你找到数据库所在目录,也可以是上层目录,然后设置文件夹 安全 属性,最简单的是把everyone的权限设置成完全即可,那对于这个问题,应该使哪个对象的权限设置成完全呢?答案是 IUSER_您的机器名 。这个是哪个对象?这个是Internet来宾用户,有兴趣的读者可以查阅相关资料。至此,问题解决,你可以再运行一下看看是否解决了问题。

附:对于Windows XP的用户,也许你会茫然于更改文件夹的安全属性。因为在默认情况下,Windows XP使用了简单文件共享方法,所以,当你点 属性 的时候是看不到 安全 选项卡的。具体操作如下:
1.文件夹——〉属性;或,资源管理器——〉工具——〉文件夹选项
2.在“查看”选项卡中不钩选“使用简单文件共享”
3.这样,你在XP下NTFS分区文件夹右键,也能看到如WIN2000一样的“安全”选项卡了
4.在“安全”选项卡下,点击“添加……”,跳出“选择用户和组”对话框
5.然后点击“立即查找”,在下图所示的列表中选择“IUSR_”(下划线之后是你的计算机名)
6.之后在“安全”选项卡中就会出现“Internet来宾帐户”,将这个帐户的权限设置为“可修改”和“可写入”
最后按确定,问题得到解决,不会再出现“Microsoft OLE DB Provider for ODBC Drivers (0x80004005)”错误 !

回答3:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x174 Thread 0xa28 DBC 0x7ef2024 Jet'。

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsoft][ODBC Microsoft Access Driver] Microsoft Jet 数据库引擎打不开文件'(未知的)'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
老样子先google再百度,搜了一大堆解决方法,这里转个比较靠谱的吧。
方法1:
错误类型: Microsoft OLE DB Provider for ODBC Drivers (’0×80004005′)
[Microsoft][ODBC Microsoft Access Driver] Microsoft Jet 数据库引擎打不开文件’(未知的)’。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
/conn.asp, 第 6 行
解决方法:
1.在asp操作数据库时出现“操作必须使用一个可更新的查询”错误:
2.文件夹——〉属性;或,资源管理器——〉工具——〉文件夹选项
3.在“查看”选项卡中不钩选“使用简单文件共享”
4.这样,你在XP下NTFS分区文件夹右键,也能看到如WIN2000一样的“安全”选项卡了
5.在“安全”选项卡下,点击“添加……”,跳出“选择用户和组”对话框
6.然后点击“立即查找”,在下图所示的列表中选择“IUSR_”(下划线之后是你的计算机名)
7.之后在“安全”选项卡中就会出现“Internet来宾帐户”,将这个帐户的权限设置为“可修改”和“可写入”
最后按确定,问题得到解决,不会再出现“Microsoft OLE DB Provider for ODBC Drivers (0×80004005)”错误 !
方法2:
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (’0×80004005′)
[Microsoft][ODBC Microsoft Access Driver] Microsoft Jet 数据库引擎打不开文件’(未知的)’。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
/conn.asp, 第 6 行

C:\Windows\Temp,添加everyone权限!
错误详情:
IIS设置好之后打开ASP网站时总提示:Microsoft OLE DB Provider for ODBC Drivers 错误 ‘80004005′
[Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 ‘Temporary (volatile) Jet DSN for process 0×728 Thread 0×854 DBC 0×276fb44 Jet’
方法步骤:
1、在WINSOWS/TEMP目录的安全选项中,添加帐号everyone具有可写权限(非NTFS文件系统则跳过此步骤);
以上解决方法可能你刷新网站页面还是错误,只需在最后一步重新回收下iis的进程。

回答4:

Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database
engine cannot open the file '(unknown)'. It is already opened exclusively
by another user, or you need permission to view its data.
原因:
这个错误发生在当IIS使用匿名帐号(通常是IUSR)时,该帐号在NT中对数据库所在的目录
没有正确的权限.(这就是为什么在Win95和PWS下没问题,因为win95根本就没有目录权限这一说)
检查文件和目录的权限. 确定你能够在该目录中有能够新建和删除临时文件的权限。
这些临时文件其实是数据库建立在同一个目录下的文件, 但是要注意的是,有可能这些文件
也可能建立在别的目录,例如 /Winnt.

使用NT的文件监视程序监视文件失败时到底是访问了什么目录。
这个NT的文件监视程序可以在这个地方下载http://www.sysinternals.com.

如果你对数据库使用了一个网络地址,例如映射地址,就要检查一下共享文件和目录的权限,

还要检查一下数据源文件(DSN)是否被别的程序标志成为正在使用中,
这些别的程序一般是Visual InterDev,关闭任何一个InterDev中的正打开和数据库连接的项目。

这个错误还可能发生在这种情况:如果在DSN中使用了一个UNC路径(就是通用命名协议),请改用
本地路径进行测试,因为如果对本地数据库使用UNC也可能出错。
还可能发生在这种情况,如果服务器要访问Access中的一个表,而这个表却联接在一个网络服务器上。

2.错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Couldn't use '(unknown)'; file
already in use.
原因:
多人使用时数据库被锁定。

3.错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not found and no default
driver specified.
原因:
最可能的原因是ConnectString是一个在global.asa中初始化的Session变量,但是global.asa
却没有正常工作。解决办法是,检查赋值时是否正确:(在你的asp中加入下面的代码)

还有一个原因就是你在你的ConnectString中加入了多余的空格,例如
DSN = MyDSN; Database = Pubs;
试试改成下面这个样子:
DSN=MyDSN;Database=Pubs;

如果是global.asa还没有工作,检查该文件是否在运用程序的根目录中,或者是虚拟目录的根目录中。

还有可能错误出现的原因是DSN名称没找着,这可以采用我提供的id=36767的办法解决。
最后是检查是否安装了最新的驱动程序,既是否是最新的MDAC版本。

4.错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Driver Manager] Data source name not ??
原因:
这个错误有可能是出现在你的计算机上软件安装(或则反安装)的顺序上。
如果ODBC的版本不一致的话,就会发生该错误。
解决办法是安装最新版本的MDAC

5.错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Access 97 ODBC driver Driver]General error Unable to open
registry key 'DriverId'.
原因:
这个错误发生在爱从注册表中读取数值的时候。 使用regedit32.exe检查你的注册表的权限。
你也可以使用NT中的注册表监视程序(NTRegMon)来看读取失败信息。该程序到这找:http://www.sysinternals.com

6.错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][dbnmpntw]ConnectionOpen (CreateFile()).
原因:
两个原因:当一个数据库中包含有分别在不用机器上的许可关系时,
这也可能发生在同一台机器上,当你给一个关系设置了UNC路径,而另一个关系却是本地路径。
错误原因是:
当用户使用IIS匿名帐号登录后,对本地这台机器而言他是有权的,但是对于一个UNC路径的机器,
另外这台机器是不会认为你当前匿名登录的帐号在它那上面也是合法的。
这样它就不允许你访问它上面的资源,导致错误。

两个解决办法:
1。在IIS工具中,改变IIS匿名帐号成另外一个基于域的帐号。(也就是不使用匿名登录)
2。或则在那台你要访问资源的机器上也创建一个和当前匿名帐号同样的帐号,使用同样的密码。

7.错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005' Microsoft][ODBC
Microsoft SQL Driver] Logon Failed()
原因:
该错误是由SQL Server产生的,当它不接受或则不能够认识这个登录帐号的时候,或者没有使用管理员身份登录,
也可能是在NT中没有SQL影射帐号造成的。

使用系统管理员帐号(SA)登录,一般密码应该为空.注意,这时必须使用CoonectString而不能够使用DSN文件。
因为DSN中没有保存用户名和密码。
检查NT是否给SQL映射了帐号。

8.错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][SQL Server] Login failed- User: Reason:
Not defined as a valid user of a trusted SQL Server connection.
原因:
原因同上。
试试这个办法:在SQL Server的Enterprise Manager中,选择Server/SQL Server/Configure[ASCII
133]/Security Options/Standard.
如果是运行在IIS4中,取消选择该项目的Password Synchronization选项。

9.错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Couldn't lock file.
原因:
也许是没有正确的权限生成Access数据库的锁定文件(.ldb)
默认时,该文件和你的数据库是同一个目录的。
给匿名帐号全权访问数据库共享目录的权限。

有时是因为文件是因为共享时有意使用了只读的权限限制。试试使用下面的代码。
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Mode = adModeShareDenyWrite '8

10.错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] '(unknown)' isn't a valid
path. Make sure that the path name is spelled correctly and that you are
connected to the server on which the file resides.
原因:
路径非法。最可能发生在当Global.asa和CoonecntString被使用到另外一台机器上的时候。

11.错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][SQL Server] The query and the views in
it exceed the limit of 16 tables.

原因:
查询太复杂了,对查询有限制。

12.错误信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC SQL Server Driver][DBMSSOCN] General network error. Check
your network document
原因:
当装有SQL Server的机器改名的时候。但是DSN还使用了原来的机器名。

资料引用:http://www.knowsky.com/3432.html

回答5:

当使用win7——win server 2012系统,使用 iis配置web服务器时出现Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'问题?
我遇到这样的情况,在网上查找各种原因都没有解决问题,后来才发现是操作系统位数不一样出现的问题。
找到iis服务器下的“应用程序池”-》点击“设置应用程序池默认设置”-》常规里找到“启用32位应用程序”-》true。