Снимает Отметку "удаления" записи в выбранной таблице; (восстанавливает запись).

RECALL [Scope] [FOR lExpression1] [WHILE lExpression2] [NOOPTIMIZE]
[IN nWorkArea | cTableAlias]

Параметры

Scope

Определяет диапазан записей для восстановления. По-умолчанию, восстанавливается текущая запись (NEXT 1).

В этом случае, только те записи, которые удовлетворяют указанному диапазону, - восстанавливаются. Допустимые значения для данной опции: ALL, NEXT nRecords, RECORD nRecordNumber, и REST.

См. дополнительно раздел Опция Scope (область действия, регион).

FOR lExpression1

Определяет, что только те записи восстанавливаются, для которых выражение  lExpression1 = true (.T.). Данная опция позволит вам отсеить (отфильтровать) нежелательные записи.

Технология Rushmore Query Optimization применима для выполнения команды RECALL FOR  lExpression1, если  данное логическое выражение оптимизируемо. Для повышения производительности при выполнении данных команд, нужно использовать оптимизируемые условные выражения в конструкции FOR.

См. дополнительно разделы SET OPTIMIZE, команда и Использование технологии Rushmore Query Optimization для ускорения доступа к Данным.

WHILE lExpression2

Определяет логическое условие, определяющее, что записи восстанавливаются до тех пор, пока  lExpression2 = true (.T.).

NOOPTIMIZE

Блокирует технологию оптимизации Rushmore при выполнении команды RECALL

См. дополнительно разделы SET OPTIMIZE, команда и Использование технологии Rushmore Query Optimization для ускорения доступа к Данным.

IN nWorkArea | cTableAlias

Определяет номер рабочей области или алиас таблицы, для которой выполняется текущая команда RECALL. Данная опция используется для таблиц, открытых в других рабочих областях, не в текущей.

Expand imageКомментарии

Команда RECALL используется для Восстановления (снятия отметки "удаления") тех записей, которые еще не удалены "физически" с использованием команд PACK или ZAP.

Caution noteОбратите Внимание

Как только файл таблицы упакован (pack), все записи, отмеченные на удаление, исчезают навсегда.

Для удаления записей (установки флага "удаления") можно использовать команды DELETE или DELETE – SQL, а также использовать опцию  Delete Records из меню Table , когда таблица открыта в системном окне Browse или Edit . Восстановление записей (снятие отметки "удалена") осуществляется командой RECALL, или соответствующим пунктом Recall Records из меню Record, когда активны системные окна Browse или Edit.

Если отсутствует опция IN, команда RECALL работает с текущей рабочей областью.

Expand imageПример

В представленном примере: открывается таблица  customer, находящаяся в базе данных testdata . С помощью команды DELETE – SQL  - удаляются все записи, для которых значение поля country = "USA". Данные записи отображаются на экране; за тем - все записи восстанавливаются командой RECALL ALL.

  CopyCode imageКопировать Код
CLOSE DATABASES
OPEN DATABASE (HOME(2) + 'data\testdata')
USE customer && Opens Customer table

DELETE FROM customer WHERE country = 'USA' && Mark for deletion
CLEAR
LIST FIELDS company, country FOR DELETED( ) && List marked records
RECALL ALL && Unmark all records marked for deletion

Expand imageСм. также