当我们过渡到使用更新的文件服务器时,我们的 VB3 / Jet DB 2.5 应用程序遇到了这个问题。
问题是“机会锁定”: http: //support.microsoft.com/kb/296264 ?wa=wsignin1.0
阿尔伯特可能正在描述同样的事情;服务器将允许一个客户端独占访问文件,但是当另一个客户端加入时,这种独占访问将在它们之间“颠簸”,导致延迟,因为具有 oplock 的客户端在另一个客户端可以访问之前将其所有本地缓存刷新到服务器文件。
这也可能是您使用一个客户端获得良好性能的原因 - 如果它需要一个机会锁,它可以在本地缓存所有数据。
如果您的一个客户端出现电源故障或掉线,这也可能导致一些严重的损坏,因为将本地缓存刷新到服务器可能会被中断。
根据文章,您曾经能够在 Windows 2000 和 XP 上禁用此功能(在客户端上- 因此您需要为所有客户端提供服务),但在 Vista SP2 之后似乎是不可能的。
关于不使用 Access / JetDB 作为多用户数据库的评论基本上是正确的 - 这不是一个好的架构选择,尤其是鉴于上述情况。DAO 也是一个过时的库,即使在过时的 VB6 中也是如此。ADODB 是 VB6 的更好选择,并且应该允许您根据应用程序的编写方式来衡量数据库的独立性。