User Tools

Site Tools


delete_delete_record_subject_to_referential_constraints_.htm
Navigation:  ABC Library Reference > RelationManager > RelationManager Methods >====== Delete (delete record subject to referential constraints) C6H0009.jpg ====== Previous pageReturn to chapter overviewNext page

Delete( [ confirm ] ), VIRTUAL

blk2blue.jpg

Delete Deletes the record from the primary file subject to any specified referential integrity constraints.
Confirm An integer constant, variable, EQUATE, or expression that indicates whether to confirm the delete with the end user. A value of one (1 or True) deletes only on confirmation from the end user; a value of zero (0 or false) deletes without confirmation. If omitted, confirm defaults to one (1).

The Delete method deletes the current record from the primary file (see Me) applying any specified referential integrity constraints, then returns a value indicating its success or failure. The deletes are done within a transaction frame if the Init method's uselogout parameter is set to one (1).

Implementation:

Delete constraints are specified by the AddRelation method. If the constraint is RI:Restrict, the method deletes the current record only if there are no related child records. If the constraint is RI:Cascade, the method also deletes any related child records. If the constraint is RI:None, the method unconditionally deletes only the primary file record. If the constraint is RI:Clear, the method unconditionally deletes the primary file record, and clears the linking field values in any related child records.

The Delete method calls the primary file FileManager.Throw method to confirm the delete with the end user.

Return Data Type:     BYTE

Example:

DeleteCustomer PROCEDURE

CODE

Relate:Customer.Open               !Open Customer & related files

IF NOT GlobalErrors.Throw(Msg:ConfirmDelete) !have user confirm delete

 LOOP                              !allow retry if delete fails

  IF Relate:Customer.Delete()      !delete subject to constraints

   IF NOT GlobalErrors.Throw(Msg:RetryDelete) !if del fails, offer to try again

    CYCLE                          !if user accepts, try again

   END                             ! otherwise, fall thru

  END                              !if del succeeds or user declines

 UNTIL 1                           ! fall out of loop

END

See Also:     AddRelation, Init

delete_delete_record_subject_to_referential_constraints_.htm.txt · Last modified: 2021/04/15 15:57 by 127.0.0.1