Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Voprosy_k_ekzamenu_po_BD (2).docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
951 Кб
Скачать
☆

Автоматическая блокировка

В Visual FoxPro может осуществляться автоматическая или ручная блокировка данных. При использовании определенных команд FoxPro попытается автоматически заблокировать записи или всю таблицу (табл. 20.1).

Таблица 20.1. Команды, автоматически блокирующие таблицу или записи

Команда

Что блокируется

ALTER TABLE

Вся таблица

APPEND

Вся таблица

APPEND BLANK

Заголовок таблицы

APPEND FROM

Вся таблица

APPEND FROM ARRAY

Заголовок таблицы

APPEND MEMO

Текущая запись

BLANK

Текущая запись

BROWSE

Текущая запись и все записи из одноименных полей в связанных таблицах

CHANGE

Текущая запись и все записи из одноименных полей в связанных таблицах

DELETE

Текущая запись

DELETE NEXT 1

Текущая запись

DELETE <n>

Если л больше 1 , автоматически блокируется вся таблица

DELETE RECORD <n>

Автоматически блокирует п записей

DELETE SQL

Текущая запись

EDIT

Текущая запись и все записи из одноименных полей в связанных таблицах

GATHER

Текущая запись

INSERT

Вся таблица

INSERT SQL

Заголовок таблицы

MODIFY MEMO

Когда начинается редактирование записи, автоматически блокирует ее

READ

Текущая запись

RECALL

Текущая запись

RECALL NEXT 1

Автоматически блокирует указанную запись

RECALL RECORD <n>

Блокирует п записей

RECALL <n>

Если п больше 1 , автоматически блокируется вся таблица

REPLACE

Текущая запись

REPLACE NEXT 1

Автоматически блокирует указанную запись

REPLACE RECORD <n>

Блокирует п записей

SHOW GETS

Текущая запись

TABLEUPDATEO

Вся таблица

UPDATE

Вся таблица

UPDATE SQL

Вся таблица

Полная блокировка таблицы и блокировка изменений

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

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

Для открытия таблицы в режиме полной блокировки используется команда SET EXCLUSIVE ON. После выполнения данной команды все открываемые таблицы будут находиться в режиме полной блокировки. Для снятия режима полной блокировки используйте команду SET EXCLUSIVE OFF. При этом полная блокировка открытых таблиц будет снята только после их закрытия. Для установки полной блокировки отдельной таблицы может быть использована опция EXCLUSIVE в команде открытия таблицы USE. Если таблица открыта в монопольном режиме, необходимость блокировки таблицы или ее записей отсутствует. После закрытия таблицы блокировка автоматически снимается.

Ниже приведены два примера установки полной блокировки таблицы. В первом примере используются две команды, а во втором — таблица открывается в режиме исключительного использования одной командой:

SET EXLUSIVE ON

USE CUSTOMER

или

USE CUSTOMER EXCLUSIVE

Некоторые команды, список которых приведен ниже, могут использоваться только в режиме полной блокировки:

  • ALTER TABLE

  • INDEX

  • INSERT [BLANK]

  • MODIFY STRUCURE

  • PACK

  • REINDEX

  • ZAP

Если вы попробуете применить одну из этих команд, не открыв таблицу для исключительного использования, FoxPro выдаст предупреждающее сообщение Exclusive Open of File Required.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]