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


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


void ClearLogicalRecordSet(void);

Прототип функции LockLogicalRecordSet(), используемой для блокирования группы записей:

int LockLogicalRecordSet(WORD Timeout);

Параметр Timeout используется так же, как и при вызове функции LogLogicalRecord().

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

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

После того как группа записей заблокирована, вы можете разблокировать отдельные записи или всю группу сразу.

Для разблокирования отдельных записей используйте функцию ReleaseLogicalRecord():

int ReleaseLogicalRecord(char LogicalRecordName);

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

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

void ReleaseLogicalRecordSet(void);

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

На входе: AH = D0h;
AL = Параметр LockDirective;
BP = Параметр Timeout;
DS:DX = Адрес имени логической записи.
На выходе: AL = Код ошибки или 0, если операция завершилась без ошибок.

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

На входе: AH = D4h;
DS:DX = Адрес имени логической записи.
На выходе: AL = Код ошибки или 0, если операция завершилась без ошибок.

Для удаления группы записей и разблокирования всех записей вместо функции ClearLogicalRecordSet() можно использовать функцию D5h прерывания INT 21h:

На входе: AH = D5h.
На выходе: AL = Код ошибки или 0, если операция завершилась без ошибок.

Для блокирования группы записей вместо функции LockLogicalRecordSet() можно использовать функцию D1h прерывания INT 21h:

На входе: AH = D1h;
AL = Регистр должен содержать значение 0;
BP = Параметр Timeout.
На выходе: AL = Код ошибки или 0, если операция завершилась без ошибок.
<


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



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