DB.IsLocked
Revision as of 07:16, 23 September 2019 by Admin (talk | contribs) (Created page with "{{infobox function |name=IsLocked |object=Объект базы данных |caption=Проверка наличия блокировки |type=1 |status=2 |db=1 |excepti...")
IsLocked (Проверка наличия блокировки) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция проверяет, заблокирован ли уже другим пользователем текущий объект и, если заблокирован, то кем. Функция возвращает:
- 0 -- объект не заблокирован в данное время (блокировка возможна).
- 1 -- текущий объект уже заблокирован ранее с помощью функции Lock, либо является визуальным объектом, открытым для редактирования (блокировка уже активна, нет смысла блокировать второй раз). Данный код результата относится только к текущему объекту, для другого объекта созданного в этом же потоке, позиционированного на тот же самый объект БД, функция будет возвращать 2, так как первый объект уже был заблокирован (см. пример).
- 2 -- объект был заблокирован другим пользователем или потоком (блокировка в данное время невозможна).
Синтаксис
DB.IsLocked(<Заблокировано пользователем (STRING)>,<Заблокировано на машине (STRING)>,<Время блокировки (DATE)>):<Тип блокировки (INT)>
Аргументы
<Заблокировано пользователем (STRING)>
- (необязательный аргумент)(возможен аргумент-переменная (ByRef)) Аргумент-переменная, содержимое которой заполняется именем пользователя, который заблокировал данный объект, в случае, если блокировку невозможно произвести по причине того, что объект был заблокирован ранее. Если аргумент опущен, информация по блокировке не будет получена.<Заблокировано на машине (STRING)>
- (необязательный аргумент)(возможен аргумент-переменная (ByRef)) Аргумент-переменная, содержимое которой заполняется наименованием компьютера, на которым произошла блокировка данного объекта, в случае, если блокировку невозможно произвести по причине того, что объект был заблокирован ранее. Если аргумент опущен, информация по блокировке не будет получена.<Время блокировки (DATE)>
- (необязательный аргумент)(возможен аргумент-переменная (ByRef)) Аргумент-переменная, содержимое которой заполняется датой и временем, когда был заблокирован данный объект, в случае, если блокировку невозможно произвести по причине того, что объект был заблокирован ранее. Если аргумент опущен, информация по блокировке не будет получена.
Возвращаемое значение
Функция возвращает 0, 1 или 2, в зависимости от состояния или возможности блокировки объекта.
Примеры
//Блокировка документа аДок аПольз:="";аМаш:="";аВремя:=""; If аДок.Lock(аПольз,аМаш,аВремя)=0 Then Message("Невозможно заблокировать документ "+аДок+", так как в данный момент с ним работает пользователь "+аПольз+" на "+аМаш+" в "+аВремя+"!","!"); Exit; EndIf; //Функция выводит 1, так как объект заблокирован локально Message(аДок.IsLocked()); //Создание новой копии объекта бДок:=аДок.Copy(); //Функция выводит 2, так как другой объект аДок уже имеет блокировку этого документа. Message(бДок.IsLocked()); //Разблокируем объект аДок.Unlock(); //Функция выводит 0, так как другой объект аДок больше не имеет блокировки Message(бДок.IsLocked());