PropertyHandle - Property Handle
Property handle are used to handle persistent or transient data sources. A data source is a collection, object instance or an elementary data item. A data source contains the data for a property of a specific object.
A property handle usually handles a collection of subsequent object instance. In special cases the collection is singular (e.g. the "direction" for a person is exactly one "Address" object instance). In other cases the instance is elementary (as e.g. the given names of a person).
A property handle has a cursor function that allows to select one of the instances in the collection as the "current" instance. Only from the selected instance one may retrieve data by means of subsequent property handles or Get() functions (GetString(), GetTime(), ...) for elementary data sources.
Generic Property handles
One may define generic property handles using the generic property handle constructor (PI(type)()). This requires that one has to created a C++ header file for the referenced type. In this case one may access elementary data field in the instance directly referring to the generated class members. For references the instance contains corresponding generic property handles that one may reference by class member name as well. In this case one has to create the property handle to be access. This makes programming simpler but in this case one has to recompile the application when changing the database structure. This is not necessary when referring to property handles hierarchies created in the application.
Property handle hierarchies
Property handles form a tree that defines a specific view in an application. When defining this view once the property handles can be used as long as the application follows the defined view. When defining a property handle for AllPersons, which is an extent in the database, one may define subordinated property handles for "name", "children", and "company", which refer to the persons name, its children and the company the person is working for. When selecting another person in the AllPersons property handle the data sources for "name", "children" and "company" will change. This, however, is maintained automatically by the system, i.e. when changing the selection in a parent property handle the data sources for all subordinated property handles are updated automatically and one may access them directly.
Filter and temporary data sources
Usually a property handle shows all the elements that have been added to the data source. One may restrict the number of visible instances by setting a filter (SetFilter()) using an expression or a C++ function. One may also create a new data source using the Select() function which creates a temporary data source.
Operations with Property handles
Property handles provide all algebraic and set operations. One may apply most of algebraic operations (as +, -, * etc.) on elementary and collection data sources. In this case e.g. the '-' operator corresponds to the relational Minus() operation. In most cases, however, the types of operands must be comparable. One may compare string data with numeric data but one cannot compare a person collection with a date field.
Set operations are defined on the operations defined in relational algebra (Intersection, Union, Minus, Select) rather that by using SQL like Select statements.
- nodeptr - Pointer to property access node
- Context function support - Context function support
- Data access - Data access functions
- Error support - Error support
- Event handling - Event handling
- Meta-information - Metadata information
- Operation - Operations
- Operator - Operators
- Optimization - Access optimization
- Preparation - Preparation functions
- Status information - Status information
- Validation - Validation functions
- Versioning - Version feature
- Add - Add instance to collection
- AddGlobal - Add instance globally to collection
- AddObject - Add object by object identity
- AddReference - Add persistent instance
- AllocDescription - Allocate property description
- AllocateArea - Allocate instance area
- AppendActionResult - Append string to action result
- AppendString - Append string to text field
- AttributeExtensionCount - - internal feature
- AutoLocate - Automatic instance location
- Average - Calculate average for an attribute in a collection
- BlockEvents - Block events for event handlers
- CTXError - Context Error
- CanAccess - Is property handle accessible
- CanClose - - internal feature
- CanCreate - Can instance(s) be created for collection
- CanDelete - Can selected instance be deleted
- CanInsert - Can instance(s) be inserted into collection
- CanRemove - Can selected instance be removed from collection
- CanRename - Can selected instance be renamed
- CanUpdate - Can selected instance be modified
- CanUpdateCollection - Can collection be updated
- Cancel - Cancel selection
- CancelBuffer - Cancel all buffered instances
- ChangeBuffer - Change collection buffer count
- ChangeCache - Change cache size
- ChangeMode - Change access mode
- Check - Check property handle
- CheckDB - Check data in object instance(s)
- CheckPosition - Check position
- CheckUpdate - Can instance be updated
- CheckValid - Check for valid property handle
- CheckValidity - Check property handle validity
- CheckWProtect - Check write protection
- Close - Close Property Handle
- CloseAll - - internal feature
- Compare - Compare the values for two property handles
- CompareKey - Compare two identifying key values
- CompareSortKey - Compare keys according to current sort order
- CompareType - Check properties for comparability
- Contains - Does property contain text
- ContextEnabled - Context Enabled
- ConvertToWinChar - Converts ASCII character into Windows compatible ANSI character set
- Copy - Copy instance
- CopyData - Copy data from an instance area
- CopyDescription - Create a copy for the property description
- CopyFilter - Copy filter condition
- CopyHandle - Create a copy of the property handle
- CopyInst - Copy transient instance
- CopyInstance - Copy Instance
- CopyInstanceArea - Copy Instance Area
- CopySet - Copy collection
- CreateAttribute - Create attribute extension
- CreateAttribute_intern - - internal feature
- CreateTempExtent - Creates a temporary extent
- CreateVersion - - internal feature
- Delete - Delete/remove instance from collection
- DeleteExtension - Remove property extension
- DeleteIndexEntry - - internal feature
- DeleteIndexes - - internal feature
- DeleteSet - Delete/remove all instance in a collection
- Dereference - Dereference collection handle
- Deviation - Calculate standard deviation for an attribute in a collection
- DisableContext - Disable context actions for property handle
- DisableKeyCheck - Disable key check
- Distinct - - internal feature
- Duplicate - Duplicate instance
- EnableContext - Enable context actions for property handle
- EnableKeyCheck - Enable key check
- EventsBlocked - - internal feature
- Execute - Execute Handle
- ExecuteExpression - Execute expression
- ExecuteInstanceAction - Execute action on instance level
- ExecutePropertyAction - Execute action on property (collection) level
- ExecuteTemplate - Execute OSI inline template
- Exist - Does instance exist
- ExistProperty - Check property path
- ExpandFilter - Expand filter condition
- Export - Export data to file
- ExtensionsCount - Number of property extensions
- ExtractAccessKey - - internal feature
- ExtractCurrentKey - Extract ident-key from the currently selected instance
- ExtractKey - Extract identifying key value
- ExtractSortKey - Extract sort key value
- FastDeleteSet - - internal feature
- Fill - Fill instance from external one
- FillData - Fill instance from external one
- FirstKey - Locate first key
- FixKeyComponents - Fix key component values
- Format - Get formatted string
- Get - Get property instance
- GetAccessKeySMCB - - internal feature
- GetArea - Get Instance area
- GetAttribute - Get attribute according to position
- GetAttributeExtension - - internal feature
- GetAutoNumber - - internal feature
- GetBaseProperty - Get collection handle for base collection
- GetCollectionID - Returns local collection identity
- GetCollectionProperty - Get parent collection property handle
- GetCount - Get number of instances stored for property
- GetCurrentIndex - Get cursor position
- GetCurrentKey - Get ident-key value from selected instance
- GetCurrentKeySMCB - Get ident-key for currently selected instance
- GetCurrentLength - Get current value length
- GetCurrentSize - Get size for selected instance
- GetCurrentType - Get type for selected instance
- GetCurrentTypeDef - Get current type definition
- GetCurrentTypeNumber - - internal feature
- GetDBHandle - Get database handle
- GetDataVersion - - internal feature
- GetDate - Get Date value for property handle
- GetDateTime - Get property instance as timestamp (date/time)
- GetDay - Get day value from date
- GetDescription - Get property definition
- GetDictionary - Get dictionary handle
- GetDimension - Provide field dimension
- GetDouble - Get property instance as double value
- GetExtInstModCount - - internal feature
- GetExtension - Get extension property handle
- GetExtentName - Get extent name for collection
- GetField - Get Field definition
- GetFieldDef - Get field definition for the property
- GetGUID - Get global identity string for the current instance
- GetGenAttrType - Get generic attribute type
- GetGenOrderType - Get current type for generic sort order of collection handle
- GetGlobalID - Get local unique identifier (LOID)
- GetHierarchyPath - Get Accesspath for property handle hierarchy
- GetHours - Get hours from a time value
- GetID - Get local object identity
- GetIdentity - Get property identity string
- GetIndex - Get index position for key value
- GetIndexName - Name of the current index
- GetInitArea - Provide initialized instance area
- GetInitInstance - Provide initialized instance
- GetInstModCount - Get instance modification count
- GetInstance - Get current instance
- GetInstanceActionResult - Get result from last action executed
- GetInstanceContext - Get Instance Context
- GetInstanceName - - internal feature
- GetInstanceVersion - - internal feature
- GetInt - Get property instance as integer value
- GetInt64 - Get property instance as big integer value
- GetIntValue - Get property instance as integer value
- GetInternPH - - internal feature
- GetKey - Get key for index position
- GetKeyLength - Get identifying key length
- GetKeyName - - internal feature
- GetKeyOrIndex - - internal feature
- GetKeySMCB - Get identifying key definition
- GetLOID - Get instance identity (LOID)
- GetMajorVersion - - internal feature
- GetMinutes - Get minutes from a time value
- GetMode - Get access mode
- GetMonth - Get month value from date
- GetNode - Get Node
- GetNodeType - Get node type
- GetNormalized - Get normalized integer value
- GetObjectHandle - Get Database Object handle
- GetOrigin - Get original property handle
- GetParentProperty - Get high property
- GetPrivilege - Get access privilege for reference
- GetPropertyActionResult - - internal feature
- GetPropertyContext - Get property context
- GetPropertyHandle - Get property handle
- GetPropertyPath - Get property path for property handle
- GetPropertyVersion - - internal feature
- GetRefModCount - Get collection update count
- GetReference - Get reference from structure definition
- GetRelative - Get relative instance
- GetRelativeCount - Get relative count
- GetRelativeIndex - Get relative position of current or last instance
- GetResult - - internal feature
- GetResultProperty - Get result property for property handle
- GetSeconds - Get seconds from a time value
- GetSelectedKey - Get selected key value
- GetSize - Get instance size
- GetSizeOf - Get size of instance in collection handle
- GetSortKey - Get sort key name
- GetSortKeyLength - Get sort key length
- GetSortKeySMCB - - internal feature
- GetString - Get string
- GetStringKey - Get identifying key value for selected instance
- GetStringLength - Provide string length for instance
- GetStringValue - Get property instance as string value
- GetStructDef - Get structure definition
- GetSubString - Extract substring
- GetSubVersion - - internal feature
- GetText - Get text data
- GetTime - Get property instance as time value
- GetTransientPH - - internal feature
- GetTransientProperty - - internal feature
- GetType - Get basic collection type
- GetUserTypeID - - internal feature
- GetUserTypeName - - internal feature
- GetValid - - internal feature
- GetValue - Get instance value
- GetVersion - Get version number for selected instance
- GetYear - Get year value from date
- Group - Grouping operation
- HasData - Does property handle refer to data?
- HasDescription - Is description available
- HasExtension - Does property extension exist?
- HasFilter - Has a filter been set
- HasGenericAttributes - Does the instance have generic attributes
- HasIndex - Does a collection have an index?
- HasInstances - - internal feature
- Import - - internal feature
- Inherits - Does property inherit from passed type
- InitDescription - - internal feature
- InitPropertyHandle - Init property handle
- InitResult - Init property handle for result of an operation
- Initialize - Initialize instance area
- InsertString - Insert string at given position
- InstanceInserted - - internal feature
- InstanceRefresh - - internal feature
- InstanceUpdated - - internal feature
- Intersect - Intersect collections
- Is - Is property handle the same
- IsA - Is structure of given type
- IsActive - Is property an active property
- IsArray - Is property an array
- IsAttribute - Is property an attribute?
- IsAutoSelection - Is auto selection enabled
- IsBasedOn - Does structure inherit from passed type
- IsBasetypeProperty - Is property member of the base type
- IsBasicType - Is the type of the PropertyHandle an elementary one?
- IsBlob - - internal feature
- IsClient - Is property handle a client handle
- IsCollection - Is property a collection or reference?
- IsCollectionDeleting - Is collection going to be deleted?
- IsConstant - - internal feature
- IsCopyHandle - Is property handle a copy handle
- IsDate - - internal feature
- IsDateTime - - internal feature
- IsDirty - Is property handle dirty
- IsEmpty - Is property instance empty?
- IsEnumeration - Is the type of the PropertyHandle an enumeration ?
- IsGenericAttribute - Is property a generic attribute?
- IsInitInstance - In instance initialized instance
- IsInstanceDeleting - Is currently selected instance going to be deleted?
- IsInternNode - - internal feature
- IsKeyCheckEnabled - - internal feature
- IsKeyInstance - - internal feature
- IsMemo - Check property type for memo field
- IsModified - Has property unsaved modifications?
- IsNewInstance - Has instance just being created
- IsNumeric - Check property type for numeric
- IsOldInstance - Is old instance
- IsOperation - Is property handle an operation
- IsOverloadHandle - Is property handle an overload handle
- IsOwner - Is Property Handle owner of the data source
- IsOwning - - internal feature
- IsParent - Is property handle parent
- IsPathExpression - Is property a path expression
- IsPositioned - Is instance positioned
- IsProperty - Is property a property with the name passed?
- IsReadOnly - Is property read only
- IsResultNode - - internal feature
- IsSelected - Is instance selected
- IsSensitive - Is property handle sensitive against modifications
- IsServer - Is property handle a server handle
- IsShareBaseHandle - Is property handle for base structure
- IsStoringData - - internal feature
- IsStructure - Is the type of the PropertyHandle a defined Structure ?
- IsTemporaryCollection - Is property a temporary collection
- IsText - Check property type for text
- IsTime - - internal feature
- IsTransient - Is property transient
- IsTransientAttribute - Is attribute transient
- IsTransientCollection - Is property a transient collection
- IsTransientReference - Is property handle a transient reference?
- IsTrue - Is value for property TRUE?
- IsTyped - Is instance typed?
- IsUniqueCollection - Is collection unique collection
- IsUpdating - - internal feature
- IsUserHandle - Is property handle user-defined
- IsValid - - internal feature
- IsValidForParent - Is subhandle valid for parent passed
- IsValidText - Checks text fields for valid characters
- IsVariableType - May type of instances change?
- IsView - - internal feature
- IsWeakTyped - Is reference weak typed
- IsWrite - Can instance be updated
- KeyToString - Convert internal key to string
- LastKey - - internal feature
- Locate - Locate object by identity
- LocateIndex - Preselect instance in collection
- LocateKey - Locate instance according to key
- LocatePath - Locate path for path collection handle
- LocatePosition - Set current position in property handle
- LockSet - Lock collection
- LockSetUpdate - Lock collection for update
- LockUser - Lock instance
- MarkUnused - Mark property handle as unused
- MarkUsed - Mark property handle as used
- Maximum - Calculate maximum for an attribute in a collection
- Minimum - Calculate minimum for an attribute in a collection
- Minus - Subtract collections
- Modify - Mark property as modified
- Move - Move instance to another collection
- MoveDown - Move instance down
- MoveUp - Move instance one position up
- Next - Provide next instance in collection
- NextInstanceVersion - - internal feature
- NextKey - Locate next key
- NextPropertyVersion - - internal feature
- NoWrite - Is instance write protected?
- Open - Open property handle
- OpenExtern - Open property handle for external file
- OpenHierarchy - Open hierarchy property handle
- OrderBy - Order collection by attribute list
- OrderExist - - internal feature
- OwnsData - Owns data area
- Position - Select an instance relative to the current selection
- PositionIndex - - internal feature
- PositionTop - Position parent collections
- Power - Raise to power of
- Previous - Provide previous instance in collection
- PreviousInstanceVersion - - internal feature
- PreviousKey - - internal feature
- PreviousPropertyVersion - - internal feature
- PropertyExist - - internal feature
- PropertyHandle - Constructor
- ProvGenAttribute - Provide generic attributes for new instance
- Provide - Provide instance
- ProvideArea - Provide instance area
- ProvideExtension - Create property extension
- ProvideGUID - Provide Global Instance Identifier (GUID)
- ProvideGlobal - Provide instance outside the transaction
- ProvideHierarchy - - internal feature
- Read - - internal feature
- ReadBuffer - Fill instance buffer from position
- RebuildIndex - Rebuild Index
- Refresh - Refresh selected instance
- RefreshAttribute - - internal feature
- RegisterHandle - Register property handle
- RegisterIntern - Register property handle internally
- ReleaseBuffer - Release instance buffer
- RemoveAttribute - Remove attribute
- RemoveFromCollection - Remove instance from collection
- RemoveIndex - - internal feature
- RemoveString - - internal feature
- Rename - Rename instance
- Reopen - - internal feature
- RepairBaseCollection - - internal feature
- RepairCollection - Repair collection
- RepairIndex - Repair Index for current collection
- RepairKey - Repair key value in index entry
- ReplaceOptions - Replace system variable
- ReplaceString - Replace text
- Reset - Reset instance
- ResetDirty - Reset dirty flag
- ResetFilter - Reset selection
- ResetInstanceEventHandler - Reset instance event handler
- ResetInstanceProcessHandler - Reset instance process handler
- ResetPropertyEventHandler - Reset property event handler
- ResetPropertyProcessHandler - Reset property process handler
- ResetTransientProperty - Reset transient property handle
- ResetWProtect - Reset write protection
- ReturnHandle - - internal feature
- SDBError - - internal feature
- Save - Store instance
- SearchText - Search string in property
- Select - Create a subset from a collection
- SetArea - Set area pointer for property instance
- SetAutoLocate - - internal feature
- SetAutoLocateExpression - - internal feature
- SetAutoSelection - Set auto selection
- SetContextVariables - Set context variables
- SetCurrentKey - - internal feature
- SetDescription - Set definition for property
- SetDirty - Set property handle to dirty
- SetDynLength - Activate dynamic length handling
- SetFilter - Set selection (filter) condition
- SetGenAttribute - - Title unknown
- SetGenOrderType - - internal feature
- SetInstance - Set basic instance for property
- SetInstanceActionResult - Set result string
- SetInstanceEventHandler - Set Instance Event Handler
- SetInstanceProcessHandler - Activate Instance process event handler
- SetKey - Move ident key value to instance
- SetKeyFilter - Set filter condition based on key value
- SetMajorVersion - - internal feature
- SetModified - - internal feature
- SetName - - internal feature
- SetNormalized - Set normalized value in attribute
- SetOrder - Set sort order
- SetPropertyActionResult - Set result string
- SetPropertyEventHandler - Set Property Event Handler
- SetPropertyProcessHandler - Activate property process event handler
- SetResult - - internal feature
- SetSortKey - Store sort key value to instance
- SetSubVersion - - internal feature
- SetTransientProperty - Setting property handle for transient property (reference)
- SetType - Set type for weak-typed collection
- SetUpdate - - internal feature
- SetValue - Set Value
- SetVersion - Set instance version to be provided by the collection handle
- SetWProtect - Set persistent write protection
- StartRTA - Start read transaction
- Statistic - Calculate statistic for an attribute in a collection
- StopRTA - Stop read transaction
- StringToKey - Convert string to internal key
- Sum - Calculate sum for an attribute in a collection
- SyncVersion - - internal feature
- ToTop - Position to top of collection
- Union - Union two collections
- UnlockSet - Unlock collection
- UnlockSetUpdate - Unlock collection locked for update
- UnlockUser - Unlock instance
- UnregisterHandle - Unregister property handle
- UnregisterIntern - Unregister internally registered property handle
- UpdateVersion - - internal feature
- UseHandle - - internal feature
- ValidateForParent - Is property handle still valid for parent
- ValidateNode - Checks whether the Handle is valid
- ValidateNode_intern - - internal feature
- Variance - Calculate variance for an attribute in a collection
- Write - - internal feature
- get_nodeptr - - internal feature
- operator! - Negation operator for logical values
- operator!= - Compare two property instances (not equal)
- operator% - Remaining part for integer division
- operator&& - Logical AND operation
- operator() - Locate instance
- operator* - Multiply two properties
- operator*= - Multiply and assign result to first operator
- operator+ - Sum two properties
- operator++ - Position cursor on next instance
- operator+= - Sum and assign result to first operator
- operator- - Subtract properties
- operator-- - Position cursor on previous instance
- operator-= - Subtract and assign result to first operator
- operator/ - Divide properties
- operator/= - Divide and assign result to first operator
- operator< - Compare two property instances (less)
- operator<< - Shift left operator
- operator<= - Compare two property instances (less or equal)
- operator= - Assign property instances
- operator== - Compare two property instances (equal)
- operator> - Compare two property instances (greater)
- operator>= - Compare two property instances (greater or equal)
- operator>> - Shift right operator
- operator[] - Locate property instance
- operator^ - Exclusive OR operation
- operator|| - Logical OR operation
- ~PropertyHandle - Destructor

