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