New (RecordsetCursor constructor)

From m204wiki
Revision as of 01:51, 27 July 2011 by JAL2 (talk | contribs)
Jump to navigation Jump to search

Create a new RecordsetCursor object (RecordsetCursor class)

This shared function instantiates a RecordsetCursor object. The method requires a Recordset or SortedRecordset object parameter, and it may have a LoopLockStrength parameter.

Available as of Sirius Mods version 7.6, the New method is an alternative to using the (Recordset or SortedRecordset) Cursor constructor, as described in "Declaration and instantiation".

Syntax

%recordsetCursor = [%(RecordsetCursor In filOrGrp name):]New( recordset, - [LoopLockStrength= lockStrength])

Syntax terms

%rscursor A declared RecordsetCursor object including its file/group context.
%(RecordSetCursor) The optional class name in parentheses denotes a Constructor. See "Usage notes", below, for more information about invoking a RecordsetCursor Constructor.
%recset A required Recordset or SortedRecordset object.
LoopLockStrength This optional, name required, parameter is a LockStrength enumeration setting the minimum lock strength for a record in a For Record At loop on a RecordsetCursor object. Options are None (default), Share, or Exclusive, further described in CurrentRecord.

For more information about loop lock strength, see "LoopLockStrength for RecordsetCursors".
Note: This parameter is only valid if %recset is a Recordset object.

Usage notes

  • As described in "Using New or other Constructors", New can be invoked with no object, with an explicit class name, or with an object variable in the class, even if that object is Null:

    %rscursor = new %rscursor = %(RecordsetCursor in group fleet):new %rscursor = %rscursor:new

    Note: As shown above, when explicitly indicating the class, both the class name and the file or group context must be specified just as they are on the RecordsetCursor variable's declaration.

  • If %recset is empty, New returns a RecordsetCursor object with the state Empty. This is different from the Cursor methods of instantiation, which return a null if %recset is empty.
  • When a RecordsetCursor is instantiated, it is automatically positioned on the first record in the set (state=HasRecord).
  • You can have as many cursors as you want for a RecordsetCursor.
  • If you are creating an extension class of the RecordsetCursor class, you can use New in the Construct statement in the extension class:

    class myrecSetCurse extends RecordsetCursor - in file test inherit ... constructor new construct %(RecordsetCursor):new(%sortedRecset) ... end constructor ... end class

    The Cursor method constructor cannot be used for this purpose.

See also