Blog

Keep up to date with the latest news

Access 锁定文件说明(laccdb 和 ldb) - Microsoft 365 Apps

介绍

.laccdb或.ldb文件在 Microsoft Access 数据库引擎的多用户方案中起着重要作用。

.laccdb 文件或 .ldb 文件用于确定共享数据库中锁定的记录及其锁定者。 该文件 .laccdb 与 .accdb 数据库一起使用, .ldb 该文件与“.mdb”数据库一起使用。

.laccdb 文件和 .ldb 文件通常被称为锁文件。

自动创建和删除锁文件

对于打开以供共享使用的每个数据库,将创建一个或多个.laccdb.ldb文件来存储计算机和安全名称,并放置扩展字节范围锁。 锁定文件始终与打开的数据库同名,它与打开的数据库位于同一文件夹中。 例如,如果打开(供共享使用)中的 Northwind.accdb 示例数据库 C:\users\\documents\,则会在同一个文档文件夹中自动创建名为 Northwind.laccdb 的文件。

每当最后一个用户关闭共享数据库时,锁定文件将被删除。 唯一的例外是用户没有删除权限或数据库被标记为已损坏的情况。 然后,锁定文件不会被删除,因为它包含关于数据库被标记为损坏时谁在使用它的信息。

所需的文件夹权限

如果计划共享数据库,数据库文件应位于用户具有读取、写入、创建和删除权限的文件夹中。 即使希望用户具有不同的文件权限(例如,某些只读和一些读写),共享数据库的所有用户都必须具有对文件夹的读取、写入和创建权限。 但是,你可以为单个用户分配对 .accdb 或.mdb文件的只读权限,同时仍允许对文件夹拥有完全权限。

注释

如果用户打开具有独占访问权限的数据库(单击 “打开 ”按钮右侧的箭头,然后单击“ 打开独占”),则不使用记录锁定。 因此,Microsoft Access 不会尝试打开或创建锁定文件。 如果数据库始终以独占方式打开,则用户只需对文件夹具有读取和写入权限。

锁定文件内容

对于打开共享数据库的每个人,Access 数据库引擎会在数据库的.laccdb文件或.ldb文件中写入一个条目。 每个条目的大小为 64 字节。 前 32 个字节包含计算机名称(如 JohnDoe)。 第二个 32 个字节包含安全名称(如管理员)。 Access 数据库引擎支持的最大并发用户数为 255。 因此,锁文件大小永远不会大于 16 KB。

注释

尽管文件服务器解决方案最多可以支持 255 个同时用户,但如果解决方案的用户经常添加数据和更新数据,则 Access 文件服务器解决方案支持不超过 25 到 50 个用户是个好主意。 有关详细信息,请参阅 第 1 章:了解 Microsoft Access 2000 客户端/服务器开发。

当用户关闭共享数据库时,不会从锁定文件中删除用户的条目。 但是,当其他用户打开数据库时,用户的条目可能会被覆盖。 这意味着不能单独使用锁定文件来确定当前正在使用数据库的人员。

锁定文件用法

Access 数据库引擎使用锁定文件信息来阻止用户将数据写入其他用户锁定的页面或记录,并确定哪些页面或记录已锁定。 如果 Access 数据库引擎检测到与另一个用户的锁冲突,它将读取锁定文件,以获取已锁定文件或记录的用户的计算机和安全名称。

在大多数锁定冲突情况下,你会收到一条通用的“写入冲突”消息,用于保存记录、将其复制到剪贴板,或删除所做的更改。 但在某些情况下,你会收到以下错误消息:

无法锁定表<表名>;当前由用户<安全名称>在计算机<计算机名称>上使用。

注释

锁文件中信息的状态与数据库的状态没有关系。 如果锁定文件损坏,数据库中的所有内容仍应正常工作。 但是,你可能会在任何锁定冲突消息中看到乱码,而不是用户名。

使用 Microsoft Visual Basic for Applications,可以输出登录到特定数据库的用户列表。 有关如何执行此作和示例代码的详细信息,请参阅 如何在 Access 中使用 Microsoft Jet UserRoster 来确定谁登录到数据库。