Функция DELETED( )

Возвращает логическое значение, которое показывает, помечена ли текущая запись на удаление.

Синтаксис:

DELETED([cTableAlias | nWorkArea])

Параметры:
cTableAlias | nWorkArea
Вы можете проверить статус текущей записи в таблице, открытой в другой рабочей области, задав номер рабочей области в аргументе nWorkArea или псевдоним таблицы в аргументе cTableAlias. Если в заданной рабочей области нет открытых таблиц, функция DELETED( ) возвращает значение "ложь".
Если аргументы cTableAlias и nWorkArea опущены, статус удаления возвращается для текущей записи в текущей рабочей области.

Результат:
Логический

Комментарии:
Если запись помечена на удаление, функция DELETED( ) возвращает значение "истина" (.T.), в противном случае она возвращает "ложь" (.F.).
Записи помечаются на удаление командами DELETE и DELETE - SQL, а снять такую маркировку можно командой RECALL.
Технология Rushmore оптимизирует запросы, проверяющие для записей статус удаления, если таблица индексирована по функции DELETED( ). О том, как оптимизировать запросы по технологии Rushmore, см. темы SET OPTIMIZE и Основы технологии Rushmore и главу 17 "Оптимизация приложений" Руководства разработчика.

Пример:

* В следующем примере открывается таблица customer в базе данных
* testdata. Команда DELETE - SQL помечает на удаление все записи, в
* которых поле country содержит значение USA. Функция DELETED( )
* используется для отображения всех записей, помеченных для удаления.
* Команда RECALL ALL используется для снятия маркировки со всех
* записей, помеченных на удаление.

CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\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

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем.