The day before yesterday, n a long time ago to do an Access database program error, the program has not changed, before a good, suddenly not.
The error message is as follows:
----------------------------------
Microsoft OLE DB Provider for ODBC Drivers error ' 80004005 '
[Microsoft] [ODBC Microsoft Access Driver] Common error cannot open registry key ' temporary (volatile) Jet DSN for process 0x728 Thread 0x854 DBC 0x276fb44 J ET '.
----------------------------------
Due to a recent attack on a server has been the collapse of the reload, there is no time to ignore this problem. Later in the friend (is the user of the program OH) more than a push, decided to fix it.
At first, I really don't know what's going on. Google search a lot of opinions, filter out a bunch of spam information without results, get the following possible reasons:
1. Microsoft has not updated ODBC, need to use Jet to connect Access database files;
2. Changes to the permissions of the system directory.
There are also old posts to say what the reason is: "Access database files are ACCESS97 version of", this does not need to consider, I use the ACCESS2000 database.
For the first reason, the original connection string is as follows:
--ODBC Connection Mode------------------------
Mdbpath=server. MapPath ("my.mdb.asp")
Cnnstr = "dbq=" & Mdbpath & ";D river={microsoft Access DRIVER (*.mdb)};uid=admin;pwd="
-------------------------------------
Use the Jet connection after the connection string is:
---Jet connection method---------------------
Cnnstr = "Provider=Microsoft.Jet.OLEDB.4.0; User id=admin;data source= "& Mdbpath &"; Password=luntanbbs "
-------------------------------------
After the test is invalid, although the error message for the hint is somewhat different:
----------------------------------
Microsoft JET Database Engine error ' 80004005 ' Unspecified error
----------------------------------
Finally check for the second reason: Insufficient system directory permissions. Upon enquiry, the users are read-only because of security considerations when a colleague sets the server's Winnt directory to Administrators, System Full Control.
But, by reason of this permission setting, ODBC driver is in Winntsystem32odbcjt32.dll this is also readable, is it because of lack of "execute" permission?
I gave the Execute permission to all the DLL files that started with ODBC in the Winntsystem32 directory and found the same error message. Then I simply set the entire system32 directory to everyone executable, but a test still does not work.
Are there other files that are called by ODBC or jet but are not in this System32 directory and are not fully authorized to fail?
When I was thinking about it, I caught a glimpse of the Winnt EMP directory. Hey, I set the temp directory to everyone to "write" to see.
A test, hey, became. A program that uses ODBC connection methods to successfully read the update of records in an Access database.
Interestingly, a program that uses the Jet connection method reports another error:
-------------------------------------------
Microsoft JET Database Engine error ' 80040e4d ' cannot start the application.
The workgroup information file is missing or has been opened exclusively by another user.
-------------------------------------------
Hey, do not know this jet error and what is going on?
Have time to screw it up. If you know, please send me a reply oh. :-D