В среде совместного доступа вы можете обращаться к данным двумя способами: в режиме монопольного доступа и в режиме совместного доступа. Если вы открыли таблицу для совместного доступа, то другие пользователи могут обращаться к ее файлу. Если вы открыли таблицу для использования в монопольном режиме доступа, то другие пользователи не могут ни читать, ни писать в этот файл. Поскольку использование монопольного доступа делает невозможным использования большинства возможностей совместной работы с данными в сети, он должен использоваться осторожно.
Использование таблиц в режиме монопольного доступа
Наиболее ограниченным способом отрыть файл, является его открытие в монопольном режиме. Когда вы открываете файл таблицы с помощью интерфейса, он, по умолчанию, открывается в монопольном режиме. Вы можете, кроме того, открыть таблицу в монопольном режиме указав это явно в командах Visual FoxPro.
Для того, чтобы открыть таблицу для монопольного использования (exclusive)
-
Напечатайте в командном окне команду:
Скопировать код
SET EXCLUSIVE ON USE cMyTable
- или -
-
Напечатайте в командном окне команду:
Скопировать код
USE cMyTable EXCLUSIVE
Перечисленные ниже команды требуют, чтобы таблица была открыта в монопольном режиме:
-
Команда INDEX при создании, добавлении или удалении составного индексного тэга.
-
Команда MODIFY STRUCTURE Для использования этой команды таблица должна быть открыта в монопольном режиме. Вы можете, однако, использовать эту команду в режиме "только для чтения" когда вы открыли таблицу для совместного использования.
Visual FoxPro возвратит сообщение об ошибке: "Exclusive open of file is required," если вы попытаетесь выполнить любую из этих команд на таблице, открытой для совместного использования (shared).
Вы можете запретить обращение к таблице с помощью функции FLOCK( ). Если вы используете функцию FLOCK() для блокировки таблицы, ни один из других пользователей не может писать в таблицу, но они могут читать из нее.
Использовать таблицы в совместном доступе (Shared Access)
Когда вы открываете таблицу для совместного использования, то одновременно использовать одну и ту же таблицу может множество компьютеров. Когда вы открываете таблицу через интерфейс, вы можете переписать установку ON, используемую по умолчанию командой SET EXCLUSIVE. Вы можете явно открыть таблицу для совместного использования с помощью команд Visual FoxPro.
Для открытия таблицы для совместного использования
-
Напечатайте в командном окне команду :
Скопировать код
SET EXCLUSIVE OFF USE cMyTable
- или -
-
Напечатайте в командном окне команду :
Скопировать код
USE cMyTable SHARED
Когда вы изменяете данные в таблице, открытой для совместного использования, вы должны сначала заблокировать записи, которые вы изменяете или заблокировать таблицу целиком. Вы можете заблокировать запись или таблицу, открытую для совместного использования с помощью приведенных ниже способов:
-
Используйте команды, производящие автоматическую блокировку записи или таблицы.
-
Заблокируйте вручную одну или более записей или таблицу целиком с помощью функций блокировки записи или таблицы.
-
Инициируйте буферирование с помощью функции CURSORSETPROP().
Связанные с таблицей файлы мемо-полей и индексов всегда открываются с тем же уровнем доступа, что и их таблицы.
Если ваше приложение использует таблицу только для целей поискам и все пользователи приложения обращаются к ней, тогда вы можете улучшить производительность приложения, определив для таблицы статус "только для чтения".
Смотрите также
Задачи
Как: использовать сессии данныхСправочное руководство
Комада SET EXCLUSIVEПрочие ресурсы
Управление доступом к даннымПрограммирование для совместного доступа