После того, как с помощью команды DELETE помечены записи для удаления, возможны два варианта дальнейших действий: либо эти записи будут удалены, либо восстановлены (т. е. метки будут устранены). Для первого случая применяется команда PACK. Во втором случае используется команда RECALL, имеющая формат, аналогичный команде DELETE:
RECALL (диапазон) FOR (выражение) WHILE (выражение) Если в процессе обработки таблицы БД пользователю понадобится информация о записях, помеченных для удаления, он может применить специальную DELETED0, которая принимает значение «Истина» (.Т.), если запись помечена к удалению, и «Ложь» (.F.), если она не помечалась или восстановлена с помощью команды RECALL.
Команда ZAP удаляет все записи из текущей таблицы БД. Эта команда тождественна последовательному применению двух команд: DELETE ALL и PACK.
Заметим, что с помощью команды RECALL невозможно восстановить записи, которые уже были физически удалены командами PACK или ZAP. Кроме того, нужно учитывать, что команда RECALL ALL не будет восстанавливать записи и в том случае, когда была дана команда SET DELETED ON.
Задания
1. Какие команды удаления не используют параметров и почему?
2. Каким будет результат последовательного приложения команд DELETE и RECALL с одними и теми же параметрами?
3. Как кратко может быть записана последовательность команд DELETE ALL и PACK?
4. Каким будет результат применения команды RECALL после команд PACK и ZAP?
5. Напишите фрагмент программы для физического удаления из таблицы ПОРУЧЕН двух первых записей.
6. Напишите фрагмент программы, физически удаляющей запись в таблице СМР 13, содержащую информацию о Петрове Сергее Николаевиче.