FoxPro8

938aad90

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


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

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

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

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

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

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

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

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

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


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

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

CURSORSETPROP(Bu f ?ering, типБуферизации,

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

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

BufferModeOverride курсора или функцией CURSORGETPROP().

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


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

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


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

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


Содержание раздела