RemoveRecordset (Recordset subroutine)

From m204wiki
Jump to navigation Jump to search

Remove from a Recordset the records that are matched in input Recordset (Recordset class)

RemoveRecordset removes or "subtracts," from the method Recordset object's records, the records in a second Recordset object.


recordset:RemoveRecordset( recordset2)

Syntax terms

recordset A non-null Recordset object.
recordset2 A non-null Recordset object, which must have the same file context as recordset.

Usage notes

  • If the recordset2 argument is null, the request is cancelled.
  • Since RemoveRecordset never adds records to a Recordset, there are no lock strength requirements for the method object or the input object.


  1. In the following example, the result of one Find is used to eliminate records from the result of another Find.

    %threaten is object recordSet in file orders %bigCust is object recordSet in file orders find records to %threaten status = 'ARREARS' end find find records to %bigCust company ='TOXICO' end find %threaten:removeRecordset(%bigCust)

  2. RemoveRecordset can be thought of as subtraction, AddRecordset as an OR, and AndRecordset as an AND. The missing basic logical operation is an exclusive OR, which is not implemented as a basic method because it is expected to be rarely needed. However, you can achieve an exclusive OR operation with the provided methods, as in the following example:

    %first is object recordSet in foo %second is object recordSet in foo %both is object recordSet in foo ... %both = %first:copy %both:andRecordset(%second) %first:addRecordset(%second) %first:removeRecordset(%both)

    And %first is now the exclusive OR of the original %first and %second.

See also