MS Access 2007可以支持多用户环境吗?

时间:2011-02-15 09:11:47

标签: delphi ms-access

有一个应用程序在多台计算机上运行(大概在2上)。这个应用程序更新了放在网络上的共享mdb。用户一次尝试更新共享的mdb,但问题是只有一个用户是能够一次更新mdb。另一个用户无法打开它。任何人都建议访问支持多用户环境吗?

修改
有一种形式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;

当我们点击代码执行后的确定按钮

if dmTimeDomain <> nil then
 begin
      if (dmTimeDomain.dbTimeDomain.InTransaction) then
            dmTimeDomain.dbTimeDomain.CommitTrans;
     end;
end;                                                                

请建议。

3 个答案:

答案 0 :(得分:4)

Access绝对支持多用户环境,但必须正确设置您的权限。所有用户必须能够在数据库所在的目录中创建文件,并且所有用户必须具有修改其他用户在该目录中创建的文件的权限。有很多方法可以搞砸了。这是因为Access使用单独的.ldb文件作为其管理并发多用户访问的机制的一部分。

一个好的测试是让一个用户在共享目录中创建一个文本文件,然后确保其他用户可以打开该文件,然后保存对它的更改。

答案 1 :(得分:1)

两者都应该能够使用该应用程序。如果一个用户正在编辑表单或表,则其他用户将无法编辑这些相同的对象。但是,一旦它处于“生产”状态,这应该与应用程序无关。几年前,我帮助将一个大型应用程序转换为MS SQL Server后端(stil MS Access前端),直到那时,他们已经成功地同时使用了15个用户的应用程序。该应用程序太大了(100个表单,100个表,有些行有一百万行)所以他们因性能原因而移动。否则他们仍然完全在Access上。

答案 2 :(得分:0)

考虑使用Access Project(adp扩展名)而不是普通的访问mdb文件。访问项目与SQL Server桌面引擎一起使用,您可以在Office CD上找到单独的安装文件。这实际上意味着您运行的SQL服务器有一个稍微淡化的版本,此服务器将为您处理所有并发问题。此外,如果您的数据库对于Access项目来说太大,您可以轻松地将数据库移植到完全成熟的SQL Server计算机。您可以在Access Project中执行大部分可以使用SQL Server执行的操作,包括存储过程等,并且设置和连接非常简单。