Show/Hide Toolbars


NoteThis command is defined in a header file and will be preprocessed by the X# preprocessor to a function call. If you disable the standard header (-nostddefs) files then this command will not be available. If you tell the compiler to use a different standard header file (-stddef ) then this command may also be not available


Tag records so they can be filtered with SetDeleted(TRUE), queried with Deleted(), or physically removed from the database file with PACK.


DELETE [<Scope>] [WHILE <lCondition>] [FOR <lCondition>]  [[IN|ALIAS] <workarea>]


<Scope>The portion of the current database file to process.  The default is all visible records. Scope is one or more clauses of:
[NEXT <NEXT>]        Optionally specifies the number of records to process starting
               with the first record of the source file.
[RECORD <rec>]        An optional record ID If specified, the processing begins
               with this data record in the source file.
[<rest:REST>]        The option REST specifies whether records are sequentially
               searched only from the current up to the last record.
               If a condition is specified, the option ALL is the default value.
[ALL]                The option ALL specifies that all records from the source file are imported.
               This is the default setting.


WHILE <lCondition>A condition that each visible record within the scope must meet, starting with the current record.  As soon as the while condition fails, the process terminates.  If no <Scope> is specified, having a while condition changes the default scope to the rest of the visible records in the file.


FOR <lCondition>A condition that each visible record within the scope must meet in order to be processed.  If a record does not meet the specified condition, it is ignored and the next visible record is processed.  If no <Scope> or WHILE clause is specified, having a for condition changes the default scope to all visible records.


IN|ALIAS <workarea>Specifies the work area for which the operation must be performed



This command merely marks the records for deletion.  To permanently remove records that are marked for deletion, PACK the file Before packing, you can reinstate deleted records with RECALL.


Visibility:If the current record is deleted and SetDeleted() is TRUE, it will be visible until the record pointer is moved.


Display of delete marker:Display commands, such as LIST and DISPLAY, identify deleted records with an asterisk character (*).


Deleting all records:To permanently remove all records from a database file regardless of their delete status, ZAP the file.


Shared mode:For a shared database, this command requires all records that it operates on to be locked.  You can accomplish this using one or more record locks or a file lock, depending on the scope of the command.  


This example demonstrates use of the FOR clause to mark a set of records for deletion:


USE sales INDEX salesman NEW



See Also

DbDelete(), DBRLock(), Deleted(), FLock(), PACK, RECALL, RLock(), SetDeleted(), ZAP