1.错误信息 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中加入下面的代码) <%= "'auth_user' is " & request.servervariables("auth_user")%>
<%= "'auth_type' is " & request.servervariables("auth_type")%>
<%= "connection string is " & session("your_connectionstring")%>
还有一个原因就是你在你的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()).
原因: 两个原因:当一个数据库中包含有分别在不用机器上的许可关系时, |