100分求多进程访问问题

Adnil 2007-11-19 06:42:50
一个有两个进程要访问一个mdb数据库,其中一个进程是有窗口的应用程序进程,另外一个是系统服务进程。

现在发现在有的电脑中,如果应用程序进程开启了,那么系统服务进程连接数据库时就会报错:
1. Microsoft JET Database Engine: Microsoft Jet 数据库引擎打不开文件''。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
2. Microsoft JET Database Engine: Could not use ''; file already in use.
3. Microsoft JET Database Engine: You attempted to open a database that is already opened exclusively by user 'Admin' on machine 'xxxxx'. Try again when the database is available.

两个进程都是用OLE DB通过ado进行连接,connection string如下:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\aaa.mdb;User ID=Admin
...全文
90 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
zccmy22 2008-04-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wangtiecheng 的回复:]
检查应用程序进程的连接方式是否为独占,如果为独占,则系统进程就会报错。

如果要让MDB允许多个用户访问,任何进程都不得以独占方式访问。
[/Quote]
OracleRoob 2007-11-20
  • 打赏
  • 举报
回复
只要独占,任何其他方式都不能再访问这个MDB。

检测方法很简单,用其他程序连接一下这个MDB,或者直接用手工打开MDB即可。
WWWWA 2007-11-20
  • 打赏
  • 举报
回复
用捕获错误方法就可以,如不能连接则是独占连接
Adnil 2007-11-20
  • 打赏
  • 举报
回复
请教wangtiecheng,我该如何用代码来监测应用程序进程的连接方式是否为独占?
OracleRoob 2007-11-20
  • 打赏
  • 举报
回复
检查应用程序进程的连接方式是否为独占,如果为独占,则系统进程就会报错。

如果要让MDB允许多个用户访问,任何进程都不得以独占方式访问。
OracleRoob 2007-11-20
  • 打赏
  • 举报
回复

--ADO连接串(带MDW的连接串):
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Test.MDB;User ID=admin;Password=;Jet OLEDB:Database Password=;Jet OLEDB:System database=D:\Test_Sys.MDW

其中第一个password为Access的用户admin的密码,第二个为Access数据库的密码
如果未设置数据库密码,可省略此项。





--访问本地MDB的ADO连接串:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Test.MDB;User ID=admin;Password=;Jet OLEDB:Database Password=000

其中第一个password为Access的用户admin的密码,第二个为Access数据库的密码
如果未设置数据库密码,可省略此项。




--ADO连接串(访问网络MDB):

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\服务器名或IP\共享目录\Test.MDB;User ID=admin;Password=;Jet OLEDB:Database Password=;

其中第一个password为Access的用户admin的密码,第二个为Access数据库的密码
如果未设置密码,可省略相关项。






WWWWA 2007-11-20
  • 打赏
  • 举报
回复
用共享打开,没有看到代码,试试
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\aaa.mdb;User ID=Admin;Mode=Share Deny None
lijiaxiang 2007-11-19
  • 打赏
  • 举报
回复
试试:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\aaa.mdb;User ID=Admin;Mode=Share Deny None

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧