Операторы Lock, Unlock
Управляет доступом других процессов ко всему или части файла, открытого с помощью инструкции Open .
Синтаксис
Блокировка [ # ] filenumber, [ recordrange ] . .Разблокировка [ # ] 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), блокируются или разблокируются. Использование оператора Lock без recnumber приводит к блокированию всего файла; использование оператора Unlock без recnumber приводит к разблокированию всего файла.
Если файл был открыт для последовательного ввода или вывода, операторы 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 и обратная связь.