Вы можете разрешить буфферизацию записи или таблицы для защиты данных во время обновления.
Разрешение буфферизации записи
Разрешите буфферизацию с помощью фукнции CURSORSETPROP( ).
Для разрешения пессимистического блокирования записи в текущей рабочей области
-
Используйте эту функцию и значение:
Скопировать код
CURSORSETPROP("Buffering", 2)
Visual FoxPro попытается заблокировать запись в позиции ее указателя. Если блокировка будет успешной, Visual FoxPro помещает запись в буффер и разрешает ее редактирование. Когда вы сместите указатель записи или используете функцию TABLEUPDATE( ), Visual FoxPro запишет буфферированную запись в оригинальную таблицу.
Для разрешения оптимистического блокирования записи в текущей рабочей области
-
Используйте эту функцию и значение:
Скопировать код
CURSORSETPROP("Buffering", 3)
Visual FoxPro запишет запись в позиции указателя в буффер и разрешит редактирование. Когда вы сместите указатель записи или используете функцию TABLEUPDATE( ), Visual FoxPro попытается заблокировать запись. Если блокировка будет успешной, Visual FoxPro сравнит текущее значение записи на диске с с оригинальным значением в буффере. Если эти значения одинаковые, то будет произведена запись в таблицу измененных данных; если же эти записи различаются, то есть кто-то другой уже изменил редактируемую пользователем запись, то Visual FoxPro сгенерирует ошибку.
Разрешение буфферирования таблицы
Разрешите буфферирование таблицы с помощью функции CURSORSETPROP().
Для разрешения пессимистического блокирования записей в текущей рабочей области
-
Используйте эту функцию и значение:
Скопировать код
CURSORSETPROP("Buffering", 4)
Visual FoxPro попытается заблокировать запись в позиции указателя. Если блокировка была успешной, Visual FoxPro поместит запись в буффер и разрешит ее редактирование. Используйте функцию TABLEUPDATE( ) для записи буфферированных записей в оригинальную таблицу.
Для разрешения оптимистического блокирования множества записей в текущей рабочей области
-
Используйте эту функцию и значение:
Скопировать код
CURSORSETPROP("Buffering", 5)
Visual FoxPro запишет записи в буффер и разрешит редактирования до момента, когда вы используете функцию TABLEUPDATE(). Затем Visual FoxPro произведет приведенную ниже последовательность действий на каждой записи в буффере:
-
Попытается заблокировать каждую отредактированную запись.
-
При успешной блокировке, сравнит текущее значение каждой записи на диске с оригинальным значением в буффере..
-
Запишет редактирование в оригинальную таблицы, если сравнение показывает, что данные на диске не изменялись или что данные на диске равны оригинальному значению в буффере.
-
Сгенерирует ошибку, если указанные значения различаются.
Когда разрешено табличное буфферирование, Visual FoxPro попытается сделать обновление только после использования функции TABLEUPDATE().
Смотрите также
Задачи
Как: добавить и удалить записи в табличных буфферахКак: использовать сессии данных
Справочное руководство
Функция CURSORSETPROP()Концепции
Буфферирование данныхПрочие ресурсы
Обновление данныхПрограммирование для совместного доступа
Управление доступом к данным