Локальные сети персональных компьютеров. Работа с сервером Novell NetWare


Блокирование логических записей - часть 2


Удалить запись из группы можно функцией ClearLogicalRecord(). Вся группа записей удаляется функцией ClearLogicalRecordSet().

Записи можно блокировать сразу при их добавлении в группу либо можно заблокировать сразу все записи, относящиеся к группе, вызвав функцию LockLogicalRecordSet().

Для разблокирования логической записи используется функция ReleaseLogicalRecord(). Если надо разблокировать сразу все логические записи, вызывайте функцию ReleaseLogicalRecordSet().

Функция LogLogicalRecord() имеет следующий прототип:

int LogLogicalRecord(char LogicalRecordName, BYTE LockDirective,WORD Timeout);

Параметр LogicalRecordName задает имя логической записи, добавляемой в группу блокируемых записей. Имя может иметь длину до 100 байт и должно быть в формате текстовой строки, закрытой двоичным нулем.

Параметр LockDirective определяет, надо ли блокировать запись сразу после ее добавления в группу:

0x00 Запись добавляется в группу, но не блокируется
0x01 Добавляемая запись блокируется для использования заблокировавшей его программой в монопольном режиме
0x03 Добавляемая запись блокируется для совместного использования

Параметр Timeout определяет период времени (в 18-x долях секунды), в течение которого файл-сервер будет ожидать, если запись нельзя заблокировать немедленно. Если для этого параметра задать нулевое значение, ожидание выполняться не будет.

Функция возвращает 0 при успешном завершении или код ошибки:

Код ошибки Значение
0x96 Мало памяти на файл-сервере
0xFE Истек период ожидания, заданный параметром Timeout, но запись так и не удалось заблокировать
0xFF Сбой при блокировании записи

Для удаления записи из группы можно использовать функцию ClearLogicalRecord():

int ClearLogicalRecord(char LogicalRecordName);

Параметр этой функции задает имя логической записи, удаляемой из группы. Функция возвращает нулевое значение или значение 0xFF, если в группе нет указанной записи.

Функция ClearLogicalRecordSet() позволяет разблокировать все записи группы и удалить группу:




- Начало -  - Назад -  - Вперед -



Книжный магазин