RemoveRecordsetNew (Recordset function): Difference between revisions
mNo edit summary |
m (→Syntax terms) |
||
Line 15: | Line 15: | ||
</td></tr> | </td></tr> | ||
<tr><th>recordset2</th> | <tr><th>recordset2</th> | ||
<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>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== | ||
<ul> | <ul> |
Revision as of 22:35, 22 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
.