为什么 ADO 连接即使在只读状态下仍会创建 "ldb" 锁定文件?

Why is an ADO connection still creating an "ldb" lock file even when read-only?

数据库专家的快速问题。请参阅以下代码 (VBA/ADO),调用自 Excel:

Dim DBPath As String, ConnStr As String
DBPath = ThisWorkbook.Path & Application.PathSeparator & "Database.mdb"
ConnStr = "Data Source=" & DBPath & ";" & "Jet OLEDB:Database Password=" & DBPass()
Dim cnn as ADODB.Connection
Set cnn = New ADODB.Connection
With cnn
    .Provider = CheckProvider(strPath:=DBPath) ' Separate function call. Ignore
    .Mode = adModeRead
    .Open ConnStr
End With
Stop ' To inspect the directory...

应该 以只读方式打开数据库,给定 "adModeRead" 规范。但是我注意到当连接处于活动状态时,锁定文件 (Database.ldb) 仍在目录中 created/deleted。这当然与只读命令相反,这应该意味着没有数据可以写入,因此不需要文件锁定。

谁能解释一下这里发生了什么?谢谢

编辑:以及后续行动 - 如果我想在不创建任何锁定文件的情况下以纯只读方式打开连接,还有其他方法吗?

锁文件记录到db文件的连接。该信息在多用户环境中很重要。即使您的连接是唯一的连接并且有意设置为只读,Access 仍会在锁定文件中记录该连接。在另一个用户想要以独占模式连接到同一个数据库文件以进行设计更改的情况下,这一点很重要——当您的连接仍处于活动状态时,他们将不允许独占访问。