Microsoft OLE DB Provider for ODBC Drivers error ’80004005’
[Microsoft][ODBC Microsoft Access 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.
你完全可以避免这种错误--ASP和ActiveX支持两种方式打开MDB文件的DSN-less连接,或由其它机器访问MDB文件。
1. DAO database (only for small load)
Dim File, Conn, RS
Const ReadOnly = False
File = "//server/share/file.mdb"
Set Conn = CreateObject("DAO.DBEngine.35").Workspaces(0).OpenDatabase(File,,ReadOnly)
Set RS = Conn.OpenRecordset(SQL)
2. ADO + Jet OLE DB provider
Dim Conn, RS
Set Conn = CreateObject("ADODB.Connection")
Conn.Provider = "Microsoft.Jet.OLEDB.4.0"
Conn.Open "//server/share/file.mdb"
Set RS = Conn.Execute(SQL)
你得确定使用ASP的用户有NT的数据库及共享访问权限。
假定有权限的话,你亦可访问其它机器中的开放数据连接:
http://www.pstruh.cz/
Set UM = CreateObject("UserManager.Server")
UM.LogonUser "Login with the rights", "Password", "Domain"
...
open database
...
UM.RevertToSelf
博客指出Microsoft Jet数据库引擎打开文件时可能出现错误,介绍了ASP和ActiveX避免该错误的方法,包括两种打开MDB文件的DSN - less连接方式,即DAO database和ADO + Jet OLE DB provider,还提到要确保用户有NT数据库及共享访问权限,也可访问其他机器开放数据连接。
711

被折叠的 条评论
为什么被折叠?



