Функция ISEXCLUSIVE()

Возвращает значение "истина" (.T.), если таблица или база данных открыта для монопольного использования, в противном случае возвращается "ложь" (.F.).

Синтаксис:

ISEXCLUSIVE([cTableAlias | nWorkArea | cDatabaseName [, nType]])

Параметры:
cTableAlias
Задает псевдоним таблицы, для которой необходимо узнать статус монопольного пользования. Если задать несуществующий псевдоним, Visual FoxPro выдаст сообщение об ошибке.
nWorkArea
Задает рабочую область таблицы, для которой необходимо узнать статус монопольного использования. Если таблица не открыта в заданной рабочей области, ISEXCLUSIVE( ) возвращает значение "ложь" (.F.).
cDatabaseName
Задает имя базы данных, для которой возвращается статус монопольного использования.
nType
Указывает, чей монопольный статус требуется узнать таблицы или базы данных. В следующем списке перечислены значения аргумента nType и соответствующий возвращаемый статус:

Чтобы определить статус монопольного использования для базы данных, нужно задать nType со значением 2.

Результат:
Логический.

Комментарии:
Если необязательные аргументы cTableAlias, nWorkArea или cDatabaseName опущены, функция ISEXCLUSIVE( ) возвращает значение для таблицы, открытой в выбранной в данный момент рабочей области.
Чтобы открыть таблицу для монопольного использования, нужно предварительно выдать команду USE с ключевым словом EXCLUSIVE или команду SET EXCLUSIVE, устанавливающую значение ON.
Чтобы открыть базу данных для монопольного использования, нужно предварительно выдать команду OPEN DATABASE с ключевым словом EXCLUSIVE.

Пример:

* В следующем примере функция ISEXCLUSIVE( ) проверяет, открыта ли
* таблица для монопольного пользования. Таблица не переиндексируется,
* поскольку она, находясь в текущей рабочей области, не открывалась для
* монопольного использования.

cExclusive = SET('EXCLUSIVE')
SET EXCLUSIVE OFF
SET PATH TO (SYS(2004) + 'SAMPLES\DATA\')
OPEN DATA testdata		&& Opens the test databsase
USE customer	&& Not opened exclusively
USE employee IN 0 EXCLUSIVE	&& Opened exclusively in another work area
IF ISEXCLUSIVE( )
   REINDEX	&& Can only be done if table opened exclusively
ELSE
    WAIT WINDOW 'The table has to be exclusively opened'
ENDIF
SET EXCLUSIVE &cExclusive

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 12.02.2003