Иллюстрированный самоучитель по Visual FoxPro 8

Использование буферов. Блокировка при буферизации.

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

В Visual FoxPro используются два типа буферизации: буферизация таблиц и записей. При буферизации записей после завершения редактирования записи (при изменении позиции указателя записи или при вызове функции tableupdate) все изменения записываются в базу данных. При буферизации таблиц измененные данные сохраняются в базе данных только при закрытии таблицы или вызове функции tableupdate ().

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

В 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).

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.