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 (not documented)
- 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 (not documented)
- 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 (not documented)
- 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 (not documented)
- CreateTempExtent - Creates a temporary extent
- CreateVersion - - internal feature (not documented)
- Delete - Delete/remove instance from collection
- DeleteExtension - Remove property extension
- DeleteIndexEntry - - internal feature (not documented)
- DeleteIndexes - - internal feature (not documented)
- 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 (not documented)
- Duplicate - Duplicate instance
- EnableContext - Enable context actions for property handle
- EnableKeyCheck - Enable key check
- EventsBlocked - - internal feature (not documented)
- 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 (not documented)
- ExtractCurrentKey - Extract ident-key from the currently selected instance
- ExtractKey - Extract identifying key value
- ExtractSortKey - Extract sort key value
- FastDeleteSet - - internal feature (not documented)
- 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 (not documented)
- GetArea - Get Instance area
- GetAttribute - Get attribute according to position
- GetAttributeExtension - - internal feature (not documented)
- GetAutoNumber - - internal feature (not documented)
- 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 (not documented)
- GetDBHandle - Get database handle
- GetDataVersion - - internal feature (not documented)
- 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 (not documented)
- 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 (not documented)
- GetInstanceVersion - - internal feature (not documented)
- 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 (not documented)
- GetKey - Get key for index position
- GetKeyLength - Get identifying key length
- GetKeyName - - internal feature (not documented)
- GetKeyOrIndex - - internal feature (not documented)
- GetKeySMCB - Get identifying key definition
- GetLOID - Get instance identity (LOID)
- GetMajorVersion - - internal feature (not documented)
- 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 (not documented)
- GetPropertyContext - Get property context
- GetPropertyHandle - Get property handle
- GetPropertyPath - Get property path for property handle
- GetPropertyVersion - - internal feature (not documented)
- 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 (not documented)
- 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 (not documented)
- 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 (not documented)
- GetText - Get text data
- GetTime - Get property instance as time value
- GetTransientPH - - internal feature (not documented)
- GetTransientProperty - - internal feature (not documented)
- GetType - Get basic collection type
- GetUserTypeID - - internal feature (not documented)
- GetUserTypeName - - internal feature (not documented)
- GetValid - - internal feature (not documented)
- 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 (not documented)
- Import - - internal feature (not documented)
- Inherits - Does property inherit from passed type
- InitDescription - - internal feature (not documented)
- 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 (not documented)
- InstanceRefresh - - internal feature (not documented)
- InstanceUpdated - - internal feature (not documented)
- 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 (not documented)
- IsClient - Is property handle a client handle
- IsCollection - Is property a collection or reference?
- IsCollectionDeleting - Is collection going to be deleted?
- IsConstant - - internal feature (not documented)
- IsCopyHandle - Is property handle a copy handle
- IsDate - - internal feature (not documented)
- IsDateTime - - internal feature (not documented)
- 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 (not documented)
- IsKeyCheckEnabled - - internal feature (not documented)
- IsKeyInstance - - internal feature (not documented)
- 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 (not documented)
- 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 (not documented)
- 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 (not documented)
- 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 (not documented)
- 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 (not documented)
- IsUserHandle - Is property handle user-defined
- IsValid - - internal feature (not documented)
- IsValidForParent - Is subhandle valid for parent passed
- IsValidText - Checks text fields for valid characters
- IsVariableType - May type of instances change?
- IsView - - internal feature (not documented)
- IsWeakTyped - Is reference weak typed
- IsWrite - Can instance be updated
- KeyToString - Convert internal key to string
- LastKey - - internal feature (not documented)
- 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
- Lock - Lock instance
- LockSet - Lock collection
- LockSetUpdate - Lock collection for update
- 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 (not documented)
- NextKey - Locate next key
- NextPropertyVersion - - internal feature (not documented)
- 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 (not documented)
- OwnsData - Owns data area
- Position - Select an instance relative to the current selection
- PositionIndex - - internal feature (not documented)
- PositionTop - Position parent collections
- Power - Raise to power of
- Previous - Provide previous instance in collection
- PreviousInstanceVersion - - internal feature (not documented)
- PreviousKey - - internal feature (not documented)
- PreviousPropertyVersion - - internal feature (not documented)
- 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 (not documented)
- Read - - internal feature (not documented)
- ReadBuffer - Fill instance buffer from position
- RebuildIndex - Rebuild Index
- Refresh - Refresh selected instance
- RefreshAttribute - - internal feature (not documented)
- RegisterHandle - Register property handle
- RegisterIntern - Register property handle internally
- ReleaseBuffer - Release instance buffer
- RemoveAttribute - Remove attribute
- RemoveFromCollection - Remove instance from collection
- RemoveIndex - - internal feature (not documented)
- RemoveString - - internal feature (not documented)
- Rename - Rename instance
- Reopen - - internal feature (not documented)
- 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 (not documented)
- SDBError - - internal feature (not documented)
- 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 (not documented)
- SetAutoLocateExpression - - internal feature (not documented)
- SetContextVariables - Set context variables
- SetCurrentKey - - internal feature (not documented)
- 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 (not documented)
- 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 (not documented)
- SetModified - - internal feature (not documented)
- SetName - - internal feature (not documented)
- 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 (not documented)
- SetSortKey - Store sort key value to instance
- SetSubVersion - - internal feature (not documented)
- SetTransientProperty - Setting property handle for transient property (reference)
- SetType - Set type for weak-typed collection
- SetUpdate - - internal feature (not documented)
- 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 (not documented)
- ToTop - Position to top of collection
- Union - Union two collections
- Unlock - Unlock instance
- UnlockSet - Unlock collection
- UnlockSetUpdate - Unlock collection locked for update
- UnregisterHandle - Unregister property handle
- UnregisterIntern - Unregister internally registered property handle
- UpdateVersion - - internal feature (not documented)
- UseHandle - - internal feature (not documented)
- ValidateForParent - Is property handle still valid for parent
- ValidateNode - Checks whether the Handle is valid
- ValidateNode_intern - - internal feature (not documented)
- Variance - Calculate variance for an attribute in a collection
- Write - - internal feature (not documented)
- get_nodeptr - - internal feature (not documented)
- 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