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

标签 delphi ms-access

有一个应用程序正在多台计算机上运行(大约在 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/

相关文章:

php - 尝试解码数据(将 Abs 导出到 MySQL)

php - MD5 文件哈希 - 将 Delphi 输出与 PHP md5_file 函数匹配

delphi - "SetupOpenInfFile"在 Delphi2010 中出现访问冲突错误

用于枚举的 Delphi RTTI SetValue

sql - Access 2010 : Joining three tables, 未知错误

ms-access - 将 Access 中的代码与数据分开

mysql - Delphi mysql 日期时间加分钟减去当前时间

ms-access - 我可以以编程方式打开一个新的查询窗口吗?

ms-access - 从access导入到本地数据库

python - 使用 Python 将 Access 应用程序从 MDB (2000) 转换为 ACCDB (2007/2010)