有一个应用程序正在多台计算机上运行(大约在 2 台计算机上)。该应用程序更新放置在网络上的共享 mdb。两个用户都尝试同时更新共享 mdb,但问题是只有一个用户能够一次更新mdb。另一用户无法打开它。有人可以建议access支持多用户环境吗?
编辑:
有一种形式 TFormRoadAttrib。当它激活时,将调用以下函数
procedure TFrmRoadAttrib.FormActivate(Sender: TObject);
if dmTimeDomain <> nil then
begin
if not (dmTimeDomain.dbTimeDomain.InTransaction) then
begin
dmTimeDomain.dbTimeDomain.BeginTrans;
end;
end;
其中 dbTimeDomain=TADOConnection
其值为
'Provider=Microsoft.ACE.OLEDB.12.0; Mode=Share Deny None; Extended Properties=""; Locale Identifier=1033; Jet OLEDB:Registry Path=""; Jet OLEDB:Database Password=""; Jet OLEDB:Engine Type=4; Jet OLEDB:Database Locking Mode=0; Jet OLEDB:Global Partial Bulk Ops=2; Jet OLEDB:Global Bulk Transactions=1; Jet OLEDB:New Database Password=""; Jet OLEDB:Create System Database=False; Jet OLEDB:Encrypt Database=False; Jet OLEDB:Don't Copy Locale on Compact=False; Jet OLEDB:Compact Without Replica Repair=False; Jet OLEDB:SFP=False; Data Source=Q:\BEL_01\BEL_GADM\ACCESS\Restrictions.mdb; Jet OLEDB:System database=C:\Program Files\Tele Atlas\Common Files\DPT.MDW; User ID=dbadpt; Password=dbadpt;
When we click on Ok button following code executes
if dmTimeDomain <> nil then
begin
if (dmTimeDomain.dbTimeDomain.InTransaction) then
dmTimeDomain.dbTimeDomain.CommitTrans;
end;
end;
请提出建议。
最佳答案
Access 确实支持多用户环境,但您的权限必须设置正确。所有用户都必须能够在数据库所在的目录中创建文件,并且所有用户都必须有权修改其他用户在该目录中创建的文件。有很多方法可以搞砸它。这是因为 Access 使用单独的 .ldb 文件作为其管理并发多用户 Access 机制的一部分。
一个好的测试是让一个用户在共享目录中创建一个文本文件,然后确保其他用户可以打开该文件,然后保存对其所做的更改。
关于delphi - MS Access 2007 可以支持多用户环境吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5001649/