我们的应用程序构建了一个 Access 数据库 (.mdb),然后使用Shell
需要对该数据库进行读/写访问的命令启动另一个应用程序。问题是在某些系统上,我们的应用程序似乎不规律地在数据库上保留了排他锁,从而阻止了其他应用程序访问它。只有在关闭第一个应用程序后,另一个应用程序才能继续。
引发的特定错误是错误 3028,这似乎是我们确实使用的 DAO 3.51 (Access '97) 所特有的。我无法理解为什么有些系统会受到影响(然后又不一致)而其他系统则不会。我认为这可能是一个时间问题,并且是Sleep
在构建数据库和启动其他应用程序之间的一段时间内构建的,但这并没有帮助。
到底是怎么回事?
编辑:我现在通过在单独的文件中创建数据库然后复制它来创建解决方法。现在第二个程序应该始终能够访问它,并且任何剩余的锁定问题都会出现在我维护的第一个程序中。当我们的用户能够对此进行测试时,我将在稍后跟进。