DBUnlockStringMutex

From SunFlurry wiki
Jump to: navigation, search
  DBUnlockStringMutex (Серверные функции)
Объект:Функции общего назначения
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Сервер
Исключения:Невозможно превратить в строку
Визуальность:Нет

Функция осуществляет разблокировку именованного серверного семафора, либо возвращает данные пользователя, который его заблокировал. См. также функцию DBLockStringMutex.

Синтаксис

DBUnlockStringMutex(<Имя семафора (STRING)>,<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<Результат (INT)>

Аргументы

  • <Имя семафора (STRING)> - Имя серверного семафора, который необходимо проверить
  • <Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)> - (возможен аргумент-переменная (ByRef)) (необязательный аргумент) Переменные, получающие информацию о том, кто, где и в какое время произвел блокировку семафора, если он был заблокирован другим клиентом.

Возвращаемое значение

Возвращает 1, если семафор успешно разблокирован, иначе возвращает 0, при этом, если семафор заблокирован другим клиентом, функция заполняет предоставленные переменные данными о клиенте, выполнившем блокировку.


Примеры

//Блок позволяет провести обмен с другой базой из текущей в монопольном режиме (другие пользователи из текущей базы не смогут производить обмен, пока он ведется данным клиентом).
ИмяБлок:="Обмен с центральной базой";
аПольз:="";аМаш:="";аДата:="";
If not DBLockStringMutex(ИмяБлок,аПольз,аМаш,аДата) Then
  Box("Обмен с с центральной базой уже выполняет пользователь "+аПольз+" ("+аМаш+"), начало "+аДата+"! Дождитесь окончания предыдущего обмена!",Q_STOP);
  Exit;
EndIf;
Try
  ...
Finally
  DBUnlockStringMutex(ИмяБлок);
EndTry;