RemoveRecordsetNew (Recordset function): Difference between revisions

From m204wiki
Jump to navigation Jump to search
mNo edit summary
Line 1: Line 1:
{{Template:Recordset:RemoveRecordsetNew subtitle}}
{{Template:Recordset:RemoveRecordsetNew subtitle}}


<var>RemoveRecordsetNew</var> &amp;amp;ldquo;NOTs&amp;amp;rdquo; a <var>Recordset</var> object's records with the records
<var>RemoveRecordsetNew</var> "subtracts", from a <var>Recordset</var> object's records, the records
in an existing <var>Recordset</var> object and produces a new <var>Recordset</var> object that
in a second <var>Recordset</var> object, producing a new <var>Recordset</var> object that
contains all the records in the first <var>Recordset</var>, but not the second.
contains all the records in the first <var>Recordset</var>, but not the second. It does the same processing as <var>[[RemoveRecordset (Recordset subroutine)|RemoveRecordset]]</var>, but it produces a new output <var>Recordset</var> and leaves the two input <var>Recordset</var>s unmodified.  
That is, it removes records from the method <var>Recordset</var> object
that are in the input <var>Recordset</var> object.
==Syntax==
==Syntax==
{{Template:Recordset:RemoveRecordsetNew syntax}}
{{Template:Recordset:RemoveRecordsetNew syntax}}
===Syntax terms===
===Syntax terms===
<table class="syntaxTable">
<table class="syntaxTable">
<tr><th>%target</th>
<tr><th>%outRecordset</th>
<td>The <var>Recordset</var> object variable created by this method.
<td>The <var>Recordset</var> object created by this method.
</td></tr>
</td></tr>
<tr><th>%rs</th>
<tr><th>recordset</th>
<td>A non-null <var>Recordset</var> object, which must have the same file context as ''%target''.
<td>A non-null <var>Recordset</var> object, which must have the same file context as <var class="term">%outRecordset</var>.
</td></tr>
</td></tr>
<tr><th>recordsetObject</th>
<tr><th>recordset2</th>
<td>A non-null <var>Recordset</var> object, which must have the same file context as ''%target'' and ''%rs''.
<td>A non-null <var>Recordset</var> object, which must have the same file context as <var class="term">%outRecordset</var> and the method object <var class="term">recordset</var>.
</td></tr></table>
</td></tr></table>
==Usage notes==
==Usage notes==
Line 23: Line 21:
<li>The <var>RemoveRecordsetNew</var> method is only available in <var class="product">Sirius Mods</var> 7.1 and later.
<li>The <var>RemoveRecordsetNew</var> method is only available in <var class="product">Sirius Mods</var> 7.1 and later.
<li>The <var>LockStrength</var> and <var>LoopLockStrength</var> of the output <var>Recordset</var> object is
<li>The <var>LockStrength</var> and <var>LoopLockStrength</var> of the output <var>Recordset</var> object is
the same as that of the method object (''%rs'').
the same as that of the method object <var class="term">recordset</var>.
<li>If the <var>Recordset</var> object argument of <var>RemoveRecordsetNew</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>RemoveRecordsetNew</var> never adds records to a <var>Recordset</var>, there are no lock
<li>Since <var>RemoveRecordsetNew</var> never adds records to a <var>Recordset</var>, there are no lock

Revision as of 11:43, 8 February 2012

Create Recordset from all records in one Recordset that are not in another (Recordset class)


RemoveRecordsetNew "subtracts", from a Recordset object's records, the records in a second Recordset object, producing a new Recordset object that contains all the records in the first Recordset, but not the second. It does the same processing as RemoveRecordset, but it produces a new output Recordset and leaves the two input Recordsets unmodified.

Syntax

%outRecordset = recordset:RemoveRecordsetNew( recordset2)

Syntax terms

%outRecordset The Recordset object created by this method.
recordset A non-null Recordset object, which must have the same file context as %outRecordset.
recordset2 A non-null Recordset object, which must have the same file context as %outRecordset and the method object recordset.

Usage notes

  • The RemoveRecordsetNew method is only available in Sirius Mods 7.1 and later.
  • The LockStrength and LoopLockStrength of the output Recordset object is the same as that of the method object recordset.
  • If the recordset2 argument is null, the request is cancelled.
  • Since RemoveRecordsetNew never adds records to a Recordset, there are no lock strength requirements for the either method or input object.

Examples

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

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

  • RemoveRecordsetNew can be thought of as subtraction, AddRecordsetNew as an OR, and AndRecordsetNew 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 %xor is object recordSet in foo ... %xor = %first:addRecordsetNew(%second): - removeRecordset(%first:andRecordsetNew(%second))

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

See also