【问题标题】:Delphi 7 app using MSAccess database blocks access by MSaccess使用 MS Access 数据库的 Delphi 7 应用程序通过 MS Access 阻止访问
【发布时间】:2012-11-06 20:57:59
【问题描述】:

我有一个旧的 Delphi 7 应用程序,我稍微修复了一下。它使用 Access 数据库。大约有 150 个用户都远程打开应用程序并并行访问数据库。在我开始修复之前(呵呵),这很好用(除了 Delphi 应用程序中的错误),即使数据库偶尔有点慢。

现在我添加了一些功能和两个新表,我突然遇到了非常奇怪的问题。

  1. MSAccess 可以访问数据库(2010 版)。这意味着:双击文件将打开 MSAccess 并打开数据库文件。
  2. Delphi 7 应用程序可以访问数据库。
  3. 两个或多个 Delphi 应用程序实例可以共享数据库,前提是我将原始 ConnectionString 模式从“ReadWrite”更改为“Share Deny None”(下面的整个连接字符串)。
  4. 一旦 Delphi 应用程序实例运行,数据库文件无法通过双击打开。 (当我这样做时没有任何反应)。但是,我可以打开 MSAccess 并从其中打开数据库文件。这会奏效。

连接字符串:

Provider=Microsoft.Jet.OLEDB.4.0;
User ID=Admin;Data Source=DBPath;
Mode=Share Deny None;
Extended Properties="";
Persist Security Info=False;
Jet OLEDB:System database="";
Jet OLEDB:Registry Path="";
Jet OLEDB:Database Password=****;
Jet OLEDB:Engine Type=5;
Jet OLEDB:Database Locking Mode=1;
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

我仍然需要查看 Renaud Bompuis 就共享的安全设置提出的所有建议,但我必须为此找到一个管理员,因此可能需要一段时间。

【问题讨论】:

  • 抱歉 4 OT,但 Access 可能不适用于 150 个用户的数据库
  • 您是否更改了文件夹的权限? Access db所在的文件夹需要读/写权限。
  • @bummi 我别无选择。该应用程序正在使用中。此外,它有效!我一直认为 MSAccess 被低估了。
  • @Remou 我会检查一下,但我不明白为什么在这种情况下允许 Delphi 应用程序访问而 MSAccess 不允许。
  • MSAccess 默认打开具有独占访问权限的数据库。您可以在每个数据库的基础上否决这一点。 IIRC 在工具菜单下的数据库选项中有一个选项。不知道他们在最近的 MS Access 版本中将该选项移到了哪里。

标签: delphi ms-access delphi-7 ado


【解决方案1】:

如果您的计算机上有数据库副本,请确保您可以使用 Access 打开它而不会出现任何错误。如果遇到问题,请先解决此问题。也许压缩并修复数据库。

确保您打开数据库的远程文件夹已添加到 Access 中的受信任位置列表中(与您打开数据库的本地文件夹相同)。

如果您可以在本地打开数据库,但不能在远程共享上打开,请确保共享的安全设置允许您读取整个共享的访问权限,以便数据库引擎可以正确创建.laccdb.ldb锁定文件。
有关类似问题,请参阅问题MS Access - “file already in use” error on split database

基本上,Access 没有理由不能打开远程数据库,即使其他用户连接到它。

当您在此处提问时,请记住发布尽可能多的详细信息。
例如在这里,您应该发布您正在使用的确切连接字符串详细信息;您还应该提及尝试从 Access 打开数据库时收到的确切错误消息,因为它可以帮助我们识别问题。

【讨论】:

  • 您的一个建议有所帮助:紧凑和维修。至于你的其他建议,我编辑了我原来的帖子。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多