AndRecordsetNew (Recordset function): Difference between revisions

From m204wiki
Jump to navigation Jump to search
mNo edit summary
 
(5 intermediate revisions by 2 users not shown)
Line 10: Line 10:
===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''.
<td>A non-null <var>Recordset</var> object, which must have the same file context as <var class="term">%outRecordset</var>.


</td></tr></table>
</td></tr></table>
Line 24: Line 24:
<li>The <var>AndRecordsetNew</var> method is only available in <var class="product">Sirius Mods</var> 7.1 and later.
<li>The <var>AndRecordsetNew</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 Recordset object is
<li>The <var>LockStrength</var> and <var>LoopLockStrength</var> of the output Recordset 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>AndRecordsetNew</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>AndRecordsetNew</var> never adds records to a <var>Recordset</var>, there are no lock
<li>Since <var>AndRecordsetNew</var> never adds records to a <var>Recordset</var>, there are no lock
strength requirements for either the method or input object.
strength requirements for either the method or input object.
Line 32: Line 31:
<var>[[AddRecordsetNew (Recordset function)|AddRecordsetNew]]</var> can be thought of
<var>[[AddRecordsetNew (Recordset function)|AddRecordsetNew]]</var> can be thought of
as an OR; and <var>[[RemoveRecordsetNew (Recordset function)|RemoveRecordsetNew]]</var>
as an OR; and <var>[[RemoveRecordsetNew (Recordset function)|RemoveRecordsetNew]]</var>
as a NOT.
as subtraction.
No basic method is the analog of an exclusive OR operation, but
No basic method is the analog of an exclusive OR operation, but
you can use the basic methods to achieve such an OR, as shown
you can use the basic methods to achieve an exclusive OR, as shown
in <var>[[RemoveRecordsetNew (Recordset function)#Examples|"Examples"]]</var>.
in the [[RemoveRecordsetNew (Recordset function)#Examples|"Examples"]] section of <var>RemoveRecordsetNew</var>.
</ul>
</ul>


Line 44: Line 43:
Of course, identical processing could be better done with an
Of course, identical processing could be better done with an
<var>And</var> in a <var>Find</var> statement.
<var>And</var> in a <var>Find</var> statement.
<p class="code"> %review      is object recordSet in  file orders
<p class="code">%review      is object recordSet in  file orders
%bigCust    is object recordSet in  file orders
%bigCust    is object recordSet in  file orders
%bigReview  is object recordSet in  file orders
%bigReview  is object recordSet in  file orders


find records to %review
find records to %review
    status = 'REVIEW'
  status = 'REVIEW'
end find
end find


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


%bigReview = %review:andRecordsetNew(%bigCust)
%bigReview = %review:andRecordsetNew(%bigCust)
</p>
</p>
==See also==
==See also==
<ul>
<li><var>[[AndRecordset (Recordset subroutine)|AndRecordset]]</var>
</ul>
{{Template:Recordset:AndRecordsetNew footer}}
{{Template:Recordset:AndRecordsetNew footer}}

Latest revision as of 22:25, 6 November 2012

Create new Recordset from intersection of two Recordsets (Recordset class)


AndRecordsetNew “ANDs” a Recordset object's records with the records in an another Recordset object and produces a new Recordset object that contains the records in both Recordsets. It does the same processing as AndRecordset, but it produces a new output Recordset and leaves the two input Recordsets unmodified.

Syntax

%outRecordset = recordset:AndRecordsetNew( 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.

Usage notes

  • The AndRecordsetNew 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 AndRecordsetNew never adds records to a Recordset, there are no lock strength requirements for either the method or input object.
  • The AndRecordsetNew method can be thought of as a Recordset AND operation; AddRecordsetNew can be thought of as an OR; and RemoveRecordsetNew as subtraction. No basic method is the analog of an exclusive OR operation, but you can use the basic methods to achieve an exclusive OR, as shown in the "Examples" section of RemoveRecordsetNew.

Example

In the following example, the result of one Find is used to limit the result of another Find. Of course, identical processing could be better done with an And in a Find statement.

%review is object recordSet in file orders %bigCust is object recordSet in file orders %bigReview is object recordSet in file orders find records to %review status = 'REVIEW' end find find records to %bigCust company ='TOXICO' end find %bigReview = %review:andRecordsetNew(%bigCust)

See also