Базы данных Visual Foxpro



 

Блокировка при буферизации

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

Таблица 20.3. Типы буферизации данных

Значение Описание
1 Буферы не используются
2 Пессимистическая блокировка записей. Visual FoxPro блокирует запись сразу же после начала редактирования данных и освобождает блокировку только после перехода на следующую запись или при выполнении фуНКЦИИ TABLEUPDATE ( )
3 Оптимистическая блокировка записей. Позволяет редактировать текущую запись в других сеансах работы и блокирует запись только при переходе на следующую запись или выполнении функции TABLEUPDATE ( }
4 Пессимистическая блокировка таблицы. Блокируются все редактируемые записи, но их обновление в базе данных осуществляется только при вызове функции TABLEUPDATE ( )
5 Оптимистическая блокировка таблицы. Позволяет редактировать записи в других сеансах работы и блокирует записи только при обновлении записей в базе данных с помощью функции TABLEUPDATE ( )

При выборе любого типа буферизации данных вы можете отказаться от выполненных изменений с помощью функции TABLEREVERT ().

Для установки типа буферизации вы можете использовать функцию CURSORSETPROPO, свойство BufferMode формы и свойство BufferModeOverride курсора, используемого в среде окружения формы.

Свойство BufferMode формы может принимать одно из значений, описанных в табл. 20.4.

Таблица 20.4. Значения свойства BufferMode

Значение Описание
0 Записи блокируются с момента начала редактирования, и значения полей записываются в базу данных при переходе к следующей записи
1 Пессимистическая блокировка записей
2 Оптимистическая блокировка записей

Для определения свойства Buf ferModeOverride откройте окно конструктора формы, выполните команду Data Environment (Среда окружения) из меню View (Вид). Далее в окне Data Environment (Среда окружения) выберите таблицу, нажмите правую кнопку мыши и из контекстного меню выберите команду Properties (Свойства). Откроется окно свойств, в котором выберите свойство BufferModeOverride (рис. 20.3) и установите одно из возможных значений (табл. 20.5).

Таблица 20.5. Значения свойства BufferModeOverride

Значение Описание
0 Буферы не используются
1 Использует тип блокировки, заданный свойством BufferMode формы
2 Пессимистическая блокировка записей
3 Оптимистическая блокировка записей
4 Пессимистическая блокировка таблицы
5 Оптимистическая блокировка таблицы
 

gl20-3.jpg

Рис. 20.3. Определение значения свойства BufferModeOverride курсора

gl20-4.jpg

Рис. 20.4. Определение типа блокировки в диалоговом окне Work Area Properties

Функция CURSORSETPROP (), используемая для определения типа буферизации курсора, имеет следующий синтаксис:

CURSORSETPROP(Buffaring, типБуферизации,

псевдонимТаблицы | номерРабочейОбласти])

Для определения текущего типа буферизации воспользуйтесь свойством BufferModeOverride курсора или функцией CURSORGETPROP() .

При работе в интерактивном режиме вы можете установить тип блокировки в диалоговом окне Work Area Properies (Свойства рабочего пространства) (рис. 20.4), которое открывается при нажатии кнопки Properties (Свойства) в диалоговом окне Data Session (Данные сеанса),

 

Назад Начало Вперед



Книжный магазин