Discussion on "Cannot Open Registry Keyword" 80004005 Error on ASP Access data

xiaoxiao2021-03-06  61

The day before yesterday, the procedure for an Access database you did before, there is no change, and the program has been changed. It is good before, and suddenly it is not.

The error message is as follows:

----------------------------------

Microsoft OLE DB Provider for ODBC Drivers Errors '80004005'

[Microsoft] [ODBC Microsoft Access Driver] Frequent Errors You cannot open the registry keyword 'Temporary (Volatile) Jet DSN for Process 0x728 thread 0x854 DBC 0x276fb44 jet'.

----------------------------------

Since the recent server is attacked, it is reinstalling, and there is no time to reason. Later, in a friend (the user of the program), I decided to get it.

In the beginning, I really can't figure it out. I have searched a lot on Google, and the people said, filtered to a bunch of spam, getting the following possible reasons:

1. Microsoft does not update the ODBC, and you need to change the Access database file in JET;

2. Changes occurred by the permissions of the system catalog.

There are also old posts to say what is: "Access database file is Access97 version", this does not require consideration, I use the Access2000 database.

For the first reason, the original connection string is as follows:

- oBC connection mode ------------------------

MDBPATH = Server.mAppath ("my.mdb.asp")

CNNSTR = "DBQ =" & mdbPath & "; driver = {Microsoft Access Driver (* .mdb)}; uid = admin; pwd ="

-------------------------------------

After modulating the Jet connection, the connection string is:

--- Jet connection method ---------------------

CNNSTR = "provider = microsoft.jet.Oledb.4.0; user ID = admin; data source =" & mdbpath & "; password = luntanbbs"

-------------------------------------

If the test is too fixed, although the prompt error message is a bit different:

----------------------------------

Microsoft Jet Database Engine Error '80004005' Unexpected Error

----------------------------------

Finally, check the second reason: system catalog permissions are insufficient. Upon asked, it was only set to Administrators, System "Full Control", and Users read-only due to safety considerations.

However, according to the truth, such permission settings, the ODBC driver is also readable at WinNT / System32 / ODBCJT32.DLL, is it because it is missing "execution" permissions?

I grant all the DLL files starting with ODBC all to the "Execute" permissions at the beginning of the ODBC, and the same error message is found. Follow my sure to put the entire System32 directory into everyone, but one test is still not. Is there any other files that were called by ODBC or Jet but not in this system32 directory and did not receive full authorization?

When I thought, I saw the Winnt / Temp directory. Hey, I set the Temp directory to Everyone "written" to see.

One test, hey, it is. Using an ODBC connection program, successful reading updates records in the Access database.

Interestingly, using JET connection methods, it is reported another error:

-------------------------------------------

Microsoft Jet Database Engine Errors '80040E4D' Unable to start the application.

The working group information file is lost, or it has been opened exclusive by other users.

-------------------------------------------

Hey, I don't know what this Jet's error is going.

I have time to do it again. If you know, please send me a reply. :-D

转载请注明原文地址:https://www.9cbs.com/read-83155.html

New Post(0)