Возвращает = true (.T.) если таблица или База Данных открыта в режиме монопольного использования (эксклюзивно); в противном случае возвращается = false (.F.).

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

Параметры

cTableAlias

Определяет алиас таблицы, для которой определяется режим эксклюзивного использования. Visual FoxPro генерирует ошибку если указан алиас не открытой таблицы.

nWorkArea

Определяет номер рабочей области, в которой открыта таблица, для которой определяется режим эксклюзивного использования. Функция ISEXCLUSIVE( ) возвращает значение = false (.F.) если в данной рабочей области не открыта таблица.

cDatabaseName

Определяет имя Базы Данных, для которой проверяется режим монопольного использования.

nType

Определяет, или уточняет характер объекта, указанного в предшествующих параметрах (таблица или база данных). В таблице приведены возможные значения данного параметра.

nType Статус Эксклюзивности объекта

1

Table (таблица)

2

Database (База Данных)

Для определения режима базы данных нужно указывать nType = 2.

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

Значение типа Logical

Expand imageКомментарии

Функция ISEXCLUSIVE( ) возвращает значения статуса эксклюзивности таблицы, открытой в текущей рабочей области, если не заданы параметры  cTableAlias, nWorkArea, или cDatabaseName.

Для открытия эксклюзивно таблицы используйте опцию EXCLUSIVE в команде USE, или глобальную установку SET EXCLUSIVE ON перед командами открытия таблиц.

Для открытия эксклюзивно Базы Данных используйте опцию EXCLUSIVE в команде OPEN DATABASE.

Expand imageПример

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

  CopyCode imageКопировать Код
cExclusive = SET('EXCLUSIVE')
SET EXCLUSIVE OFF
SET PATH TO (HOME(2) + '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

Expand imageСм. также