|Note||This 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
DELETE ALL FOR Inactive
DbDelete(), DBRLock(), Deleted(), FLock(), PACK, RECALL, RLock(), SetDeleted(), ZAP