Lock 语句、Unlock 语句
控制其他进程对使用 Open 语句打开的全部或部分文件的访问。
语法
Lock [ # ] filenumber, [ recordrange ] . .Unlock [ # ] filenumber, [ recordrange ]
Lock 和 Unlock 语句语法包含以下部分:
Part | 说明 |
---|---|
filenumber | 必填。 任何有效的文件编号。 |
recordrange | 可选。 要锁定或解锁的记录的范围。 |
设置
recordrange参数设置包括:
recnumber |[ start ]结束
Setting | 说明 |
---|---|
recnumber | 要开始锁定或解锁的记录编号(Random 模式文件)或字节编号(Binary 模式文件)。 |
start | 要锁定或解锁的第一个记录或字节的编号。 |
end | 要锁定或解锁的最后一个记录或字节的编号。 |
备注
Lock 和 Unlock 语句将在多个过程可能需要访问同一个文件的环境中使用。
Lock 和 Unlock 语句始终成对使用。 Lock 和 Unlock 的参数必须完全匹配。
文件中的第一个记录或字节位于位置 1,第二个记录或字节位于位置 2,依此类推。 如果只指定一条记录,则只有该记录被锁定或解锁。 如果您指定一系列记录并忽略开始记录 (start),则将锁定或解锁从第一个记录到范围结尾 (end) 的记录。 在没有 recnumber 的情况下使用 Lock 将锁定整个文件;在没有 recnumber 的情况下使用 Unlock 将解锁整个文件。
如果已打开文件进行连续输入或输出,则 Lock 和 Unlock 将影响整个文件,而不管 start 和 end 指定的范围如何。
重要
[!重要信息] 务必在关闭文件或退出程序之前使用 Unlock 语句删除所有锁定。 删除锁定失败将产生无法预测的结果。
示例
此示例演示对 Lock 和 Unlock 语句的使用。 修改记录时,将拒绝其他过程对记录的访问。 此示例假定 是 TESTFILE
包含用户定义类型 Record
的五条记录的文件。
Type Record ' Define user-defined type.
ID As Integer
Name As String * 20
End Type
Dim MyRecord As Record, RecordNumber ' Declare variables.
' Open sample file for random access.
Open "TESTFILE" For Random Shared As #1 Len = Len(MyRecord)
RecordNumber = 4 ' Define record number.
Lock #1, RecordNumber ' Lock record.
Get #1, RecordNumber, MyRecord ' Read record.
MyRecord.ID = 234 ' Modify record.
MyRecord.Name = "John Smith"
Put #1, RecordNumber, MyRecord ' Write modified record.
Unlock #1, RecordNumber ' Unlock current record.
Close #1 ' Close file.
另请参阅
支持和反馈
有关于 Office VBA 或本文档的疑问或反馈? 请参阅 Office VBA 支持和反馈,获取有关如何接收支持和提供反馈的指南。