DBFieldDef - Internal field definition
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.
- 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.
The reference level defines, whether a field is a direct field (, Besides reference categories, field definitions differ between managed and unmanaged fields:
- resource_lock - Internal lock object
- index_list - Internal index definitions
- dereferenced - Dereferenced field definition
- resource - Internal resource definition
- inverse_field - Property definition for inverse relationship
- inverse_fname - Inverse relationship name
- extend - Super set
- derived_paths - Paths to derived collections
- gen_type - User-defined template types
- dimensions - Multiple dimensions
- version - Schema version for property definition
- meta_field - Metadata field type
- access_privilege - Access privilege
- privilege - Access privilege
- static_field - STATIC keyword
- virtual_field - VIRTUAL option
- sec_reference - SECONDARY option
- log_reference - Logical reference
- owning - OWNER option
- create - NO_CREATE option
- del_empty - DELETE_EMPTY option
- del_auto - AUTO_DELETE option
- week_typed - WEAK_TYPED option
- depend - DEPENDENT option
- update - UPDATE option
- multikey - MULTIPLE_KEY option
- is_extent - Is property defining an extent
- by_reference - By reference value
- global_identity - GUID Option
- unique - Unique collection
- clustered_table - Clustered table
- cluster_opt - Build clustered instances
- copy_level - Copy level
- struct_owner - Field definition is owner of structure definition
- view_field - View field
- is_base_coll - Is collection referred to as base collection?
- mb_number - Main base number
- set_operation - Field defines a set operation
- initval - Initial value
- sources - Property source
- constraint - Constraint
- net_pos - Position of field in the net work transfer format instance
- net_length - Field size in the net work transfer format
- offset_ext - Offset in externally stored instance
- ext_length - External instance length
- prev_field - Field definition in previous schema version
- AddDerivedPath - - internal feature (not documented)
- AddSource - - internal feature (not documented)
- CanAssign - - internal feature (not documented)
- CanReference - Can field definition reference another one
- CopyDescription - Copy field definition
- CreateSource - Create source definition for view
- CreateSourceList - Create source list for field definition
- CreateSynonymList - Create list of synonyms
- DBFieldDef - Constructor
- DeleteIndexList - - internal feature (not documented)
- Dereference - Dereference field definition
- ExecuteSource - Execute field source
- FindSystemFieldDef - - internal feature (not documented)
- GetDBField - Get database field definition
- GetDBStruct - Get database structure
- GetIndexCount - - internal feature (not documented)
- GetIndexDef - Get index definition
- GetIndexName - Get key name for index
- GetResourceID - Get internal resource identification number
- GetSQLType - Get SQL table definition
- GetStaticFieldDef - Get static field definition for basic data type
- GetStructDef - Get database structure
- GetSystemFieldDef - - internal feature (not documented)
- HasGlobalBase - - internal feature (not documented)
- HasLocalBase - - internal feature (not documented)
- ILock - Lock field definition
- IUnlock - Release locked field definition
- InitAttribute - - internal feature (not documented)
- InitField - Initialize field definition
- Initialize - - internal feature (not documented)
- IsActive - Is field definition active
- IsBoundedCollection - - internal feature (not documented)
- IsLocalCollection - Is collection created on client
- IsPermanentCollection - - internal feature (not documented)
- IsPersistentCollection - Does property define a persistent collection?
- IsReference - - internal feature (not documented)
- IsRelationship - Does property define a relationship?
- IsTemporaryCollection - Does property define a temporary collection?
- IsTemporaryOrTransientCollection - - internal feature (not documented)
- IsTransientCollection - Does property define a transient collection?
- IsTransientProperty - - internal feature (not documented)
- IsTransientReference - Does property define a transient reference?
- IsTyped - Does property refer to a fixed data type?
- IsUniqueKey - Is index defined as unique?
- IsViewStructure - Does field definition refer to view structure?
- IsVirtualCollection - Does property define a virtual collection?
- SetExtent - Set name for base collection (extent)
- SetTransientCollection - - internal feature (not documented)
- StructureOwner - - internal feature (not documented)
- UpdateAggregationRelationship - - internal feature (not documented)
- UpdatePartition - - internal feature (not documented)
- get_cluster_opt - Get 'cluster' option
- get_clustered_table - Get 'clustered table' option
- get_create - Not allow creating new instances
- get_del_auto - AUTO_DELETE option
- get_del_empty - DELETE_EMPTY option
- get_depend - DEPENDENT option
- get_dereferenced - - internal feature (not documented)
- get_dominant - Get 'dominant' option
- get_ext_length - Get external field length
- get_extend - Get extent name or path
- get_gen_type - Get generic type or template class name
- get_global_identity - GUID Option
- get_initval - Initial value
- get_inverse - Get field definition for inverse field
- get_inverse_fname - - internal feature (not documented)
- get_log_reference - Get 'logical reference' option
- get_mb_number - - internal feature (not documented)
- get_multikey - MULTIPLE_KEY option
- get_net_length - Get field length for net work transfer instance
- get_offset_ext - Get field offset in external instance
- get_owning - OWNER option
- get_privilege - Get access privilege
- get_scope - - internal feature (not documented)
- get_sec_reference - Get 'secondary reference' option
- get_set_operation - Is operation a collection (set) operation
- get_static - Get 'static' option
- get_static_field - - internal feature (not documented)
- get_transient - Get 'transient' option
- get_update - Get 'update' option
- get_version - Get schema version
- get_virtual - Get 'virtual' option
- get_weak_typed - Get 'weak typed' option
- operator= - Copy field definition to right operand
- set_check_level - - internal feature (not documented)
- set_constraint - Set constraint expression for field
- set_copy_level - - internal feature (not documented)
- set_create - Set 'create' option
- set_del_auto - Set auto-delete (del_auto) option
- set_del_empty - Set 'delete empty' option
- set_depend - Set 'depend' option
- set_dereferenced - - internal feature (not documented)
- set_extent - - internal feature (not documented)
- set_gen_type - Set generic type or template class name
- set_global_identity - Set GUID option
- set_inverse_name - Set inverse field name
- set_log_reference - Set 'log reference' option
- set_multikey - Set 'multiple key' option
- set_owning - Set owning option
- set_privilege - Set access privilege
- set_sec_reference - Mark relationship as secondary
- set_set_operation - Mark operation as set operation
- set_update - Set update option
- set_version - Set field version
- set_view_field - - internal feature (not documented)
- set_virtual - Mark field or operation as virtual
- set_virtual_field - - internal feature (not documented)
- set_virtual_operation - - internal feature (not documented)
- set_weak_typed - - internal feature (not documented)
- ~DBFieldDef - Destructor