通过网络共享 mdb 文件,对于许多计算机,无法编辑应用程序

2024-02-01

该公司正在使用旧的 Delphi 软件,该软件使用.mdb文件作为数据库。

我无法改变应用程序的工作方式,我没有它的源代码。

我们面临着很多问题,例如:

  • 锁问题
  • 当用户添加条目时,它不会更新数据库,只会出现在本地

锁问题暂时解决了,目前的问题是只有第一个用户连接到.mdb可以编辑、添加和删除条目,其他用户也可以这样做,但更改不会应用到数据库,似乎只适用于本地用户计算机上。

我的问题是,是.mdb应该通过网络与许多用户(3~4 人)一起工作吗?

我可以做些什么来使该软件与.mdb文件,有很多用户?

记住我不能分割.mdb,因为我无法编辑 Delphi 应用程序。


您没有提到这在过去是否在多用户环境中正常工作。但是,请记住,用户必须拥有完全的读/写权限以及文件创建和删除权限。

创建和删除权限的原因是,因为这是一个没有服务器进程的“基于文件”的系统,所以会在与后端 mdb 文件相同的目录中创建一个锁定文件。当第一个用户打开该文件时,如果他们没有该文件夹的完全权限,则该文件将以独占模式打开,并且所有其他用户都将是只读的。因此,这解释了第一个用户进入但其他用户不起作用的症状。 (额外的用户将是只读的 - 显然 Delphi 软件没有检测到这个问题)。因此您可以查看数据,但不会保存数据。

因此,您需要确保所有用户都有能力创建该锁定文件。它是由第一个用户创建的,任何打开后端的其他用户也需要对该文件的权限(因此不要错误地拥有对每个用户基本设置的文件夹的权限,因为那时第一个用户将导致 JET创建锁定文件,但具有第一个用户的权限!。这再次意味着其他用户将是只读的。因此其他用户必须能够打开锁定文件,并且第一个用户必须能够创建锁定事实上,当无法创建锁定文件时,打开Access 将以独占方式打开数据库(mdb)并阻止多用户。

当最后一个用户离开数据库(或者在您的情况下离开 Delphi 应用程序)时,后端文件将关闭,并且锁定文件也会被数据库引擎(JET)删除

因此,这听起来像是您的 IT 人员没有为后端文件夹提供广泛的开放权限。您“可以”在删除文件删除权限的情况下运行数据库,但我强烈建议重新循环锁定文件也是一件好事,因为随着时间的推移,它可能会被损坏等。

因此,根据您的症状,这是 Access 中非常常见的情况,通过为所有用户提供足够的权限在与后端相同的文件夹中创建文件来解决此问题。 (而不是基于每个用户的权限)。

所有用户都必须能够创建+打开+使用第一个打开 mdb 文件的用户创建的锁定文件。此锁定文件创建是自动的,由 JET 数据库而不是 Delphi 程序管理。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过网络共享 mdb 文件,对于许多计算机,无法编辑应用程序 的相关文章

随机推荐