ASP 中常见的错误 80004005 信息
错误信息
Microsoft JET Database Engine 错误 '80004005' 未指定的错误 (Provider 错误)
原因:
权限问题,系统缓存目录权限不足
解决方法:
1、把系统盘如 C:/WINNT/Temp 目录权限加上Users可读写权限, 或者加上 Everyone 可读取权限
2、把数据库设置为Users为可读写权限
3、把数据库文件所在的目录设置为Users为可读写权限
错误信息
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] The Microsoft Jet database
Jengine 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中的一个表,而这个表却联接在一个网络服务器上。
错误信息:
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中加入下面的代码)
<P>
<%= "'auth_type' is " & request.servervariables("auth_type")%>
<P>
<%= "connection string is " & session("your_connectionstring")%>
<P>
% >
还有一个原因就是你在你的 ConnectString 中加入了多余的空格,例如
DSN = MyDSN; Database = Pubs;
试试改成下面这个样子:
PDSN=MyDSN;Database=Pubs;
如果是 global.asa 还没有工作,检查该文件是否在运用程序的根目录中,或者是虚拟目录的根目录中。
还有可能错误出现的原因是 DSN 名称没找着,这可以采用我提供的 id=36767 的办法解决。
最后是检查是否安装了最新的驱动程序,既是否是最新的 MDAC 版本。