DeepCopy (Recordset function): Difference between revisions

From m204wiki
Jump to navigation Jump to search
m (1 revision)
 
(One intermediate revision by one other user not shown)
Line 1: Line 1:
{{Template:Recordset:DeepCopy subtitle}}
#REDIRECT [[Copy and DeepCopy (Recordset functions)]]
 
<var>DeepCopy</var> is a function that returns an exact copy of the method <var>Recordset</var> object. It is identical to the <var>Recordset</var> <var>[[Copy (Recordset function)|Copy]]</var> method. <var>Recordset</var> objects are always copyable and "deep-copyable" (as these terms are described in [[Copying objects#The Object class copy methods|"The Object class copy methods"]]).
 
==Syntax==
{{Template:Recordset:DeepCopy syntax}}
===Syntax terms===
<table class="syntaxTable">
<tr><th>%newSet</th>
<td>A <var>Recordset</var> object created by this method that contains a copy of the method object.
</td></tr>
<tr><th>%recSet</th>
<td>A <var>Recordset</var> object variable. The variable can be null, in which case the output object will also be null.
</td></tr>
<tr><th>lockstrength</th>
<td>A value of the <var>LockStrength</var> enumeration that is the lock strength to give to the instantiated <var>Recordset</var> object. Options are: <var>None</var>, <var>Share</var>, or <var>Exclusive</var>, as described in [[New (Recordset constructor)|"New (Recordset constructor)"]]. This is an optional parameter, and it defaults to the lock strength of the method object. Specifying a stronger <var>LockStrength</var> than the method object's lock strength is invalid and results in request cancellation.
</td></tr>
<tr><th><var>LoopLockStrength</var></th>
<td>The lock strength to be used for loops on the copied <var>Recordset</var>. This is an optional, [[Notation conventions for methods#Named parameters|name required]], parameter, and it defaults to the <var>LoopLockStrength</var> of the method object <var>Recordset</var>. This parameter is only available in <var class="product">Sirius Mods</var> 7.0 and later. See [[Recordset class#LoopLockStrength for Recordsets|"LoopLockStrength for Recordsets"]].
 
</td></tr></table>
 
==Usage notes==
<ul>
<li>You can only create a copy of lock strength less than
or equal to the original, so <var>Copy</var> needs to acquire no locks
that the user does not already hold.
Therefore, <var>Copy</var> cannot produce a record locking conflict.
<li>Specifying a lock strength greater than the lock strength of the method
object is a request-cancelling error.
</ul>
==Example==
 
In the following example, a base record set is created, copied, then added to:
<p class="code"> begin
  %baseStooges is object recordset in file glwproc
  %copyStooges is object recordset in file glwproc
  %curleyStooge is object recordset in file glwproc
 
  fd to %baseStooges name = 'MOE' or name = 'LARRY'
      end find
  text
      ------
      The names of the %baseStooges are:
  end text
  fr in %baseStooges
      text
        {name}
      end text
  end for
 
  %copyStooges = %baseStooges:copy
  fd to %curleyStooge with name = 'CURLEY'
      end find
  %copyStooges:addRecordset( %curleyStooge )
  text
      ------
      The names of the {%copyStooges:Count} %copyStooges are:
  end text
  fr in %copyStooges
      text
        {name}
      end text
  end for
end
</p>
 
The example results follow:
<p class="output"> ------
The names of the %baseStooges are:
MOE
LARRY
------
The names of the 3 %copyStooges are:
MOE
LARRY
CURLEY
</p>
==See also==
{{Template:Recordset:DeepCopy footer}}

Latest revision as of 22:41, 6 November 2012