| |
rhl150
Posts: 29
Score: 0
Joined: 5/23/2001
From: New Zealand
Status: offline
|
Alynne, I found this on technet.microsoft.com ----------------------------------- The information in this article applies to: Microsoft Data Access Components versions 1.5, 2.0, 2.1, 2.5 Microsoft Active Server Pages Microsoft Visual InterDev, version 1.0 -------------------------------------------------------------------------------- SUMMARY This article presents details for common causes of the 0x80004005 error received by Microsoft Data Access Components (MDAC), including ActiveX Data Objects, OLE DB and the Remote Data Service (RDS). Several other error messages are discussed, including, 80040e21, 80040e14, and 80040e10. MORE INFORMATION The 80004005 error message can be summarized as "I couldn't get at your data for some reason." This article contains a listing of the various 80004005 error messages, the most frequent causes of the error messages, and troubleshooting steps to resolve them. While this article assumes you are using ActiveX Data Objects (ADO) within an Active Server Pages (ASP) page (.asp), the causes and many of the troubleshooting steps are applicable to any environment where ODBC is used for data access. Error Message Listing This section presents the text of each error message and the causes of each error. Error Message 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. Cause This error may occur if the account being used by Internet Information Server (IIS), (usually IUSR), does not have the correct Windows NT permissions for a file-based database or for the folder containing the file. Check the permissions on the file and the folder. Make sure that you have the ability to create and/or destroy any temporary files. Temporary files are usually created in the same folder as the database, but the file may also be created in other folders such as /Winnt. Use the Windows NT File Monitor to check for file access failures. Windows NT File Monitor is available from the following Web site: http://www.sysinternals.com. If you use a network path to the database (UNC or mapped drive), check the permissions on the share, the file, and the folder. Check to make sure that the file and the data source name (DSN) are not marked as Exclusive. Simplify. Use a System DSN that uses a local drive letter. Move the database to the local drive if necessary to test. The "other user" might be Visual InterDev. Close any Visual InterDev projects that contain a data connection to the database. The error may be caused by a delegation issue. Check the authentication method (Basic versus NTLM) if any. If the connection string uses the Universal Naming Convention (UNC), try using Basic Authentication or an absolute path such as C:\Mydata\Data.mdb. This may happen even if the UNC points to a resource local to the IIS computer. This error may also occur when accessing a local Microsoft Access database linked to a table where the table is in an Access database on a network server. In this situation, please refer to the following article in the Microsoft Knowledge Base for a workaround: Q189408 PRB: ASP Fails to Access Network Files Under IIS 4.0 Error Message Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access 97 Driver] Couldn't use '(unknown)'; file already in use. Cause The database cannot be locked correctly for multiple users. For more information, please refer to the following article in the Microsoft Knowledge Base: Q174943 PRB: 80004005 "Couldn't Use '(unknown)'; File Already in Use" Error Message Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified. Cause The most common cause is that the connection string a session variable initialized in the Global.asa and Global.asa not firing. You may check to see that the variable is being initialized correctly by adding the following code to the .asp page: <%= "'auth_user' is " & request.servervariables("auth_user")%> <P> <%= "'auth_type' is " & request.servervariables("auth_type")%> <P> <%= "connection string is " & session("your_connectionstring")%> <P> Another common cause is using too many spaces in your connection string: DSN = MyDSN; Database = Pubs; Try using this syntax instead: DSN=MyDSN;Database=Pubs;</ITEM> If the Global.asa file is not firing, check to make sure it is in an Application Root for IIS 4.0, or a Virtual Root with the "Execute" check box selected if running under IIS 3.0. Also, a bug may prevent the Global.asa file from being fired when Windows NT permissions have restricted access to the folder, detailed in the Microsoft Knowledge Base article Q173742 "BUG: Global.asa Not Executed If Restricting Web Access" The DSN name is not found. Check to make sure a "User" type DSN is not being used. If using a File or System DSN, try changing the connection string to "DSN=MySystemDSN" or "DBQ=MyFileDSN" as appropriate. Simplify! Check to make sure that the most current drivers are installed. If in doubt, download the latest MDAC (Microsoft Data Access Components) from the following Web site:
|
|