Copy (Record function): Difference between revisions

From m204wiki
Jump to navigation Jump to search
mNo edit summary
Line 27: Line 27:
to make a <var>Record</var> object copy with a different lock strength, the <var>New</var> or
to make a <var>Record</var> object copy with a different lock strength, the <var>New</var> or
<var>CurrentRecord</var> (inside a <var>For</var> record loop) methods had to be used.
<var>CurrentRecord</var> (inside a <var>For</var> record loop) methods had to be used.
<li>Since a <var>Record</var> object and its copy reference the same underlying
<li>Since a <var>Record</var> object and its copy reference the same underlying
record, there generally isn't a good reason to make a copy of a <var>Record</var>
record, there generally isn't a good reason to make a copy of a <var>Record</var>
object &amp;mdash; it makes more sense to just assign the reference to the
object &mdash; it makes more sense to just assign the reference to the
<var>Record</var> object.
<var>Record</var> object.
The copy functionality for <var>Records</var> is mainly for the support of <var>DeepCopy</var>
The copy functionality for <var>Records</var> is mainly for the support of <var>DeepCopy</var>
of <var>Record</var> objects to facilitate passing of these objects to and
of <var>Record</var> objects to facilitate passing of these objects to and
from [[Daemon class|daemons]].
from [[Daemon class|daemons]].
<li>The following example illustrates the use of the <var>Copy</var> function:
<li>The following example illustrates the use of the <var>Copy</var> function:
<p class="code"> %firstRec      is object record in file geeks
<p class="code"> %firstRec      is object record in file geeks
Line 41: Line 43:
</p>
</p>
</ul>
</ul>
==See also==
==See also==
{{Template:Record:Copy footer}}
{{Template:Record:Copy footer}}

Revision as of 00:43, 7 November 2012

Copy this Record object (Record class)

Copy makes an exact copy of a Record object. It is identical to the Record DeepCopy method. Record objects are always copyable and "deep-copyable" (as these terms are described in "The Object class copy methods").

Syntax

%outRecord = record:Copy[( [lockStrength], [LoopLockStrength= lockStrength])] Throws RecordLockingConflict

Syntax terms

%newRec A Record object created by this method that contains a copy of the method object.
%rec A Record object variable. The variable can be null, in which case the output object will also be null.
lockstrength A value of the LockStrength enumeration that is the lock strength to give to the instantiated Record object. Options are: None, Share, or Exclusive, as described in "New (Recordset constructor)". This is an optional parameter, and it defaults to the lock strength of the method object. This parameter is only available in Sirius Mods 7.0 and later.
LoopLockStrength The lock strength to be used for loops on the copied Record. This is an optional, name required, parameter, and it defaults to the LoopLockStrength of the method object Record. See "LoopLockStrength for Records". This parameter is available in Sirius Mods 7.0 and later.

Usage notes

  • Before Sirius Mods 7.0, Copy did not allow setting of the target lock strength. So, before Sirius Mods 7.0, to make a Record object copy with a different lock strength, the New or CurrentRecord (inside a For record loop) methods had to be used.
  • Since a Record object and its copy reference the same underlying record, there generally isn't a good reason to make a copy of a Record object — it makes more sense to just assign the reference to the Record object. The copy functionality for Records is mainly for the support of DeepCopy of Record objects to facilitate passing of these objects to and from daemons.
  • The following example illustrates the use of the Copy function:

    %firstRec is object record in file geeks %currentRec is object record in file geeks ... %currentRec = %firstRec:copy

See also