【问题标题】:For MS Access lock file (.laccdb), what does locked in `determine which records are locked` mean?对于 MS Access 锁定文件 (.laccdb),“确定哪些记录被锁定”中的锁定是什么意思?
【发布时间】:2022-01-20 06:39:02
【问题描述】:

“.laccdb”或“.ldb”文件用于确定哪些记录是 锁定在共享数据库中以及由谁锁定。

  1. determine which records are locked锁定这个词是什么意思?
  2. 换句话说 - 记录何时被锁定?
  3. 例如:假设锁定文件表明记录 10 被锁定,那么这是否意味着其他人正在读取该特定记录或写入该特定记录或两者兼而有之?

【问题讨论】:

  • 我认为这取决于应用程序客户端设置>高级>默认记录锁定。

标签: ms-access


【解决方案1】:

嗯,这是一个广泛的主题。

我们有许多级别的锁定。让我们从最少到最具体:

  • 独占数据库锁:整个数据库被锁定,用于处理应用程序对象,如表单、报表和 VBA 模块。当用户手动请求排他锁时也是如此。

    排他锁实际上不需要 .laccdb 文件,它们可以只使用普通文件锁。在使用 accdb 文件(例如 ODBC/OLEDB)的数据库部分时,这些永远不会设置为 afaik。

  • 表写入锁:用户正在编辑表的结构,例如通过添加和删除列,或更改列类型。

    当用户持有此锁时,无法读取或读取整个表。

  • 页面写锁定:记录在页面上,并且某个记录所在的整个页面被锁定。这主要发生在用户正在编辑或打算编辑加密数据库上的记录时,因为在写入加密数据库上的记录时,需要重写整个页面。

    根据您所做的事情,您可能会或可能无法从锁定的页面中读取,但您当然不能写入它们。

  • 记录写入锁定:用户正在编辑或打算编辑特定记录。行为与页锁基本相同,但仅针对单个记录而不是一页记录。

  • 表读锁:防止他人设置表写锁,在读取表时设置(通过打开表、打开绑定报表或查询表)

Access 中关于这方面的文档不是很好,所以我可能遗漏了一些。

影响锁的因素很多,例如表单上的记录集类型和记录锁属性,记录集上的记录集类型和 LockEdits 属性,以及数据库上的数据库属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    相关资源
    最近更新 更多