Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Управляет доступом других процессов ко всему или части файла, открытого с помощью инструкции 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 и обратная связь.