RemoveRecordset (Recordset subroutine): Difference between revisions

From m204wiki
Jump to navigation Jump to search
Line 40: Line 40:
  %threaten:removeRecordset(%bigCust)
  %threaten:removeRecordset(%bigCust)
</p>
</p>
<li><var>RemoveRecordset</var> can be thought of as a NOT operation,
<li><var>RemoveRecordset</var> can be thought of as subtraction,
<var>[[AddRecordset (Recordset subroutine)|AddRecordset]]</var> as an
<var>[[AddRecordset (Recordset subroutine)|AddRecordset]]</var> as an
OR, and <var>[[AndRecordset (Recordset subroutine)|AndRecordset]]</var> as an AND.
OR, and <var>[[AndRecordset (Recordset subroutine)|AndRecordset]]</var> as an AND.
Line 61: Line 61:
and <code>%second</code>.
and <code>%second</code>.
</ul>
</ul>
==See also==
==See also==
<ul>
<ul>

Revision as of 19:43, 7 February 2012

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


RemoveRecordset &amp;ldquo;NOTs&amp;rdquo; a Recordset object's records with the records in an existing Recordset object: that is, it removes records from the method Recordset object that are in the input Recordset object.

Syntax

recordset:RemoveRecordset( recordset2)

Syntax terms

%target A non-null Recordset object variable.
recordsetObject A non-null Recordset object, which must have the same file context as %target.

Usage notes

  • If the Recordset object argument of RemoveRecordset 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.

Examples

  • 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)

  • 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 such 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