常见的80004005错误及其解决方法

原创 2004年07月06日 23:14:00
     在编写WEB应用程序的过程中,我们常常要跟数据库打交道,例如我们日常经常用的数据库ACCESS、SQL SERVER等。在连接这些数据库的时候,系统往往会给我们一些象这类“80004005”错误,这些五花八门的错误信息很另人头痛。为了方便网友解决这类问题,本文将详细的介绍和解答这类问题。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

[错误信息]
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中对数据库所在目录
没有正确的权限.

 [解决方法]
1、检查文件和目录的权限. 保证Evryone能够在该目录中有新建和删除临时文件的权限。
2、检查数据源文件(DSN)是否被别的程序标志在使用中,这些程序一般都是Visual InterDev,关闭任何一个正在InterDev中打开和数据库连接的项目。
3、检查ACCESS中的某个表是否在这时已连在一个网络服务器上。
[错误信息]
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Couldn't use '(unknown)'; file
already in use. 
[原因]
要连接ACCESS数据库这时正在被使用使数据库被锁定,导致无法访问。

[错误信息]
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中初始化的Application连接字符串 ,而这时global.asa文件却没有正常工作。

[解决方法]

检查赋值时是否正确,在asp中加入下面的代码:
<%= "'auth_user' is " & request.servervariables("auth_user")%>
<P>
<%= "'auth_type' is " & request.servervariables("auth_type")%>
<P>
<%= "connection string is " & session("your_connectionstring")%>
<P> 
还有一个原因就是在ConnectString中加入了空格,例如
DSN = MyDSN; Database = Pubs; 
试试改成下面这个样子:
DSN=MyDSN;Database=Pubs;
如果是global.asa还没有被运行,检查该文件是否在运用程序的根目录中,或者是虚拟目录的根目录中。
还有可能错误出现的原因是DSN名称没找着,这可以采用我提供的id=36767的办法解决。最后是检查是否安装了最新的驱动程序,既是否是最新的MDAC版本。

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

办法是安装最新版本的MDAC。


[错误信息]
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检查注册表的权限。

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

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

[错误信息]
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映射了帐号。


[错误信息]
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产生的,当它不接受或则不能够认识这个登录帐号的时候,或者没有使用管理员身份登录,
也可能是在NT中没有SQL影射帐号造成的。
[解决方法]

SQL Server的Enterprise Manager中,选择Server/SQL Server/Configure[ASCII
133]/Security Options/Standard。如果是运行在IIS4中,取消选择该项目的Password Synchronization选项。

[错误信息]
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

[错误信息]
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被使用到另外一台机器上的时候。

[错误信息]
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. 

[原因]
对查询有限制。

[错误信息]
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)还使用了原来的机器名。

[解决方法]

重新设置DSN。

周哥跟你谈谈网页布局容易犯的错误

周哥跟你谈谈网页布局容易犯的错误,适用人群:学生亦或是上班族。
  • 2016年10月27日 16:48

windows无法访问 请检查名称的拼写… 错误代码:0x80004005和0x80070035和 0x800704cf

昨天下午到今天早上真是日了够了,简简单单的要访问一个局域网共享文件夹出幺蛾子,别人的电脑没事,就我的电脑有事,大家都是win7系统,废话少说,上解决思路。 首先在地址栏中或者再开始中输入:\\172...
  • newizan
  • newizan
  • 2015-12-15 13:34:51
  • 25459

系统出现0x80004005错误代码快速解决方法

0x80004005错误代码是亲们在使用电脑时常常遇到的问题,那么造成0x80004005错误代码的原因是什么呢?当大家碰到0x80004005错误代码的时候应该如何来解决呢?接下来小编就给大家带来系...
  • tpk5003
  • tpk5003
  • 2017-04-05 10:00:13
  • 8659

oracle常见错误及解决方法

  • 2016年04月19日 23:23
  • 138KB
  • 下载

注册dll时返回0x80004005的解决方法

注册dll时返回0x80004005的解决方法0x80004005说明你没有足够的权限完成注册有两种方法1.========定位到HKEY_LOCAL_MACHINE/SOFTWARE/Classes...
  • wuhuiran
  • wuhuiran
  • 2007-05-22 14:47:00
  • 4589

各种80004005错误及其解决方法

常见的80004005错误及其解决方法 转自:http://godsonx.blog.163.com/blog/static/10960905720120403420274/ 在编写WEB应用...
  • kamouswjw
  • kamouswjw
  • 2012-04-06 16:52:00
  • 590

Regsvr32 注册Com组件时报0x80004005错误

最近写了一个COM组件库,大家都知道COM组件使用前是需要注册的,于是在命令行中Regsvc32 Test.dll, 成功问题在于,在商业应用中,许多机器不是用Administrators组用户登录的...
  • whw6_faye
  • whw6_faye
  • 2007-03-29 11:03:00
  • 8570

未指定的错误解决((0x80004005))

  • 2012年12月07日 16:47
  • 26KB
  • 下载

Asp部署错误 '80004005'

 Microsoft JET Database Engine 错误 '80004005' 未指定的错误 /3kdiy.com.asp,行 13 解决方案:...
  • UnOpenMyCode
  • UnOpenMyCode
  • 2014-07-29 17:16:27
  • 1085

asp连接access数据库时发生的'80004005'错误总结

我们经常会遇到以下错误:Microsoft JET Database Engine 错误 80004005上下文无效或关闭。还有类似的不可识别格式的数据库等错误提示。原因是:当你的access数据库是...
  • yongping8204
  • yongping8204
  • 2006-06-22 10:38:00
  • 1698
收藏助手
不良信息举报
您举报文章:常见的80004005错误及其解决方法
举报原因:
原因补充:

(最多只允许输入30个字)