LCFieldlist class overview

The LCFieldlist class represents metadata (the description of data from a data source) for a record and may reference data, in the form of LCFields, for one or more record values. A fieldlist is a list of fields and field names with a represented order. Fields within a fieldlist can be added, modified, retrieved, or listed in multiple ways. The fields, field names, and order are separate entities and only have relation within an individual fieldlist.

Many situations exist where the names or order must be changed to accommodate different connections, but the data needs to remain constant. In these situations, more than one fieldlist can be created, each referenced by the same fields using the Map, MapName, or Merge methods.

An LCFieldlist can be dimensioned to contain one row of fields (the default) or multiple rows, allowing array operations that fetch or update multiple entries in a result set in a single operation. If your external system data source supports array operations, this can substantially enhance performance. If it does not support array operations, you can still do multiple-row fetches and updates, but you get no performance gain from doing so.

In addition to regular LCField items, an LCFieldList can also contain one or more other LCFieldlists nested inside. This is done by using an LCField item containing a data value of type LCFIELDLIST. Refer to the LCField.SetFieldList and GetFieldList methods for examples. This is useful in situations where a one-to-many relationship exists between data in different tables. For example, suppose you have an order entry system with an order number and multiple line items in the order. You can create an LCFieldlist to work with these tables that contains the order number (a stream field) and a sublist that contains all the line items for that order.

LCFieldList diagram bmp

This ability is just a convenience for maintaining data in memory; it's not currently possible to use these nested lists to read or update structured information in a single operation.