company logo

DBFieldDef - Internal field definition

Inherits:  FieldDef

Field definitions provide metadata for property handles. A field definition is the internal representation of property metadata stored in the dictionary or resource database. A field definition may refer to elementary data, but also to data of complex types or collections. For persistent data, field definitions are usually created by the database system.

Field definitions can be used for many purposes, but especially for opening property handles. Hence, several field definition constructors for elementary data types are provided.

The persistence type in the field definition determines the type of instances and indexes created for the property. There are different categories of field definitions,depending on settings for reference type and generic type:

  • direct fields -are, usually, an imbedded part of an instance or represent a variable value. Direct fields may be transient or persistent, structured or simple. Generic types for direct fields are allowed. Base type, reference and relationship properties are considered always as direct fields. Attribute properties may, however, chose between direct, pointer and reference fields
  • pointer fields - are, usually, defined as variables, transient fields or structure members in internal program structures. Pointer fields may be defined in complex database types, but as transient properties, only. Since higher programming languages as OSI or C# do not support pointers, those fields are used in C or C++ programming, only. Pointer fields may refer to different pointer levels.
  • reference fields - are, technically, pointers referring to a field instance with the type defined in the field definition. Reference fields have to be managed by the application.
  • The reference level defines, whether a field is a direct field (, Besides reference categories, field definitions differ between managed and unmanaged fields:

  • managed fields - are fields representing a collection of instances managed by a property handle. Base type, reference and relationship properties are considered as managed fields, always. Attribute property definitions are considered as managed fields, when the generic type is SET, LIST or BAG. Managed fields may be defined as direct, reference or pointer fields.
  • unmanaged fields - refer to variables or instance property values containing the value of the type defined in the field definition. Unmanaged fields may be defined as direct, reference or pointer fields.



Attributes
Functions