RemoveRecordset (Recordset subroutine): Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (1 revision)
 
(7 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{Template:Recordset:RemoveRecordset subtitle}}


<span class="pageSubtitle"><section begin=dpl_desc/><section end=dpl_desc/></span>
<var>RemoveRecordset</var> removes or "subtracts," from the method <var>Recordset</var> object's records, the records
[[Category:Recordset methods|RemoveRecordset subroutine]]
in a second <var>Recordset</var> object.
<p>
<var>RemoveRecordset</var> is a member of the <var>[[Recordset class|Recordset]]</var> class.
</p>


<var>RemoveRecordset</var> &amp;ldquo;NOTs&amp;rdquo; a <var>Recordset</var> object's records with the records
in an existing
<var>Recordset</var> object: that is, it removes records from the method <var>Recordset</var> object
that are in the input <var>Recordset</var> object.
==Syntax==
==Syntax==
<p class="syntax">%target:RemoveRecordset(recordsetObject)
{{Template:Recordset:RemoveRecordset syntax}}
</p>
 
===Syntax terms===
===Syntax terms===
<table class="syntaxTable">
<table class="syntaxTable">
<tr><th>%target</th>
<tr><th>recordset</th>
<td>A non-null <var>Recordset</var> object variable.
<td>A non-null <var>Recordset</var> object.</td></tr>
</td></tr>
<tr><th>recordsetObject</th>
<td>A non-null <var>Recordset</var> object, which must have the same file context as <code>%target</code>.


</td></tr></table>
<tr><th>recordset2</th>
==Usage Notes==
<td>A non-null <var>Recordset</var> object, which must have the same file context as <var class="term">recordset</var>.</td></tr>
</table>
 
==Usage notes==
<ul>
<ul>
<li>If the <var>Recordset</var> object argument of <var>RemoveRecordset</var> is null, the request is
<li>If the <var class="term">recordset2</var> argument is null, the request is cancelled.
cancelled.
 
<li>Since <var>RemoveRecordset</var> never adds records to a <var>Recordset</var>, there are no lock
<li>Since <var>RemoveRecordset</var> never adds records to a <var>Recordset</var>, there are no lock
strength requirements for the method object or the input object.
strength requirements for the method object or the input object.
</ul>
</ul>
==Examples==
==Examples==
<ul>
<ol>
<li>In the following example, the result of one <var>Find</var> is used to eliminate records
<li>In the following example, the result of one <var>Find</var> is used to eliminate records
from the result of another <var>Find</var>.
from the result of another <var>Find</var>.
<p class="code"> %threaten    is object recordSet in  file orders
<p class="code">%threaten    is object recordSet in  file orders
%bigCust    is object recordSet in  file orders
%bigCust    is object recordSet in  file orders


find records to %threaten
find records to %threaten
    status = 'ARREARS'
  status = 'ARREARS'
end find
end find


find records to %bigCust
find records to %bigCust
    company ='TOXICO'
  company ='TOXICO'
end find
end find


%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 53: Line 49:
be rarely needed.
be rarely needed.


However, you can achieve such an exclusive OR operation with the
However, you can achieve an exclusive OR operation with the
provided methods, as in the following example:
provided methods, as in the following example:
<p class="code"> %first      is object recordSet in foo
<p class="code">%first      is object recordSet in foo
%second      is object recordSet in foo
%second      is object recordSet in foo
%both        is object recordSet in foo
%both        is object recordSet in foo
  ...
...
%both = %first:copy
%both = %first:copy
%both:andRecordset(%second)
%both:andRecordset(%second)
%first:addRecordset(%second)
%first:addRecordset(%second)
%first:removeRecordset(%both)
%first:removeRecordset(%both)
</p>
</p>
And <code>%first</code> is now the exclusive OR of the original <code>%first</code>
And <code>%first</code> is now the exclusive OR of the original <code>%first</code>
and <code>%second</code>.
and <code>%second</code>.
</ol>
==See also==
<ul>
<li><var>[[RemoveRecordsetNew (Recordset function)|RemoveRecordsetNew]]</var>
</ul>
</ul>
{{Template:Recordset:RemoveRecordset footer}}

Latest revision as of 23:51, 6 November 2012

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.

Syntax

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.

Examples

  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