DELETED( ) Function

Returns a logical value that indicates whether the current record is marked for deletion.

DELETED([cTableAlias | nWorkArea])

Return Values

Logical

Parameters

  • cTableAlias | nWorkArea
    You can check the status of the current record in a table open in another work area by specifying the work area number with nWorkArea or the table alias with cTableAlias. If a table isn't open in the work area you specify, DELETED( ) returns false.

    If you omit cTableAlias and nWorkArea, the deleted status is returned for the current record in the current work area.

Remarks

If the record is marked for deletion, DELETED( ) returns true (.T.); otherwise, DELETED( ) returns false (.F.).

Records can be marked for deletion with DELETE and DELETE – SQL, and they can be unmarked with RECALL.

Rushmore Query Optimization optimizes queries that test the deleted status of records if the table is indexed on DELETED( ).

For information on using Rushmore to optimize queries, see SET OPTIMIZE and Using Rushmore Query Optimization to Speed Data Access.

Example

The following example opens the customer table in the testdata database. DELETE – SQL is used to mark all records for deletion where the country field contains USA. DELETED( ) is used to display all the records marked for deletion. RECALL ALL is used to unmark all the records marked for deletion.

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

See Also

DELETE | DELETE – SQL | PACK | RECALL | SET DELETED