Вы можете добавлять и уалять записи во время, когда разрешено буфферирования таблиц: добавляемые записи помещаются в конец буффера. Для доступа ко все записям в буффере, включая добавленные записи, используйте функцию RECNO(). Функция RECNO() возвратит последовательные отрицательные номера записей, добавленных вами в табличный буффер. Например, если вы инициируете буфферизацию таблицы, редактировали записи 7, 8 и 9, а затем добавили три записи, буффер будет содержать значения RECNO( ): 7, 8, 9, – 1, – 2 и – 3.
Замечание |
---|
Таблицы, содержащие поля с автоувеличением значение, добавляют записи в буфферированную таблицу примерно на 35% медленнее, чем в таблицу без таких полей, что может оказать существенное влияние на производительность приложения. При использовании буфферизации таблицы, при добавлении записей заголовок таблицы блокируется. |
Вы можете добавленные записи из буффера только с помощью функции TABLEREVERT(). Для любой добавленной записи обе функции и TABLEUPDATE(), и TABLEREVERT() удаляют отрицательное значение RECNO(), для записи, которая формирует последовательность.
Пока используется буфферизация таблицы, вы можете использовать команду GO с негативным значением RECNO( ) для обращения к конкретной добавленной записи. Например, используя предыдущую таблицу вы можете печатать команды:
Скопировать код | |
---|---|
GO 7 && moves to the 1st buffered record GO -3 && moves to the 6th buffered record (3rd appended) |
Для добавления записи в буффер таблицы
-
Используйте команду APPEND или APPEND BLANK после того, как вы разрешите буфферизацию таблицы.
Добавленные записи имеет последовательно возрастающие отрицательные номера RECNO().
Для удаления добавленной записи из буффера таблицы
-
Используйте команду GO | GOTO с отрицательным номером для позиционирования указателя записи на запись, которая будт удалена.
-
Используйте команду DELETE для маркировки записи на удаление.
-
Используйте функцию TABLEREVERT() для удаления записи из буффера.
Замечание Функция TABLEREVERT() воздействует, кроме того, на статус удаленных и измененных строк.
Для удаления все добавленных записей из буффера таблицы
-
Используйте функцию TABLEREVERT() со значением True (.T.).
TABLEREVERT() удаляет добавленные записи из фуффера таблицы без записи записей в таблицу. TABLEUPDATE() записывает все текущие буфферированные записи в таблицу, даже если они были маркированы для удаления.
Смотрите также
Задачи
Как: разрешить буфферизациюКак: использовать сессии данных
Справочное руководство
Функция CURSORSETPROP()Концепции
Буфферизация данныхПрочие ресурсы
Обновление данныхПрограммирование для совместного использования информации
Управление доступом к данным