edmiCreateUnionAggr
SdaiAggr edmiCreateUnionAggr (SdaiModel modelId, SdaiInteger numberofEntities, SdaiEntity *entities);
Creates a union aggregate, i.e. a volatile aggregate instance that contains all instances of the specified types in one data model, i.e., the union aggregate is a union of all the ENTITY_EXTENT.INSTANCES aggregates of the specified instance types in the data model. A numeric aggregateID that uniquely identifies the new created union aggregate instance in the EDMdatabase will be the returned function value. This aggregateID should be used to identify this particular union aggregate instance in subsequent EDMinterface operations. The resulting union aggregate instance will not be persistent in the EDMdatabase, it will exist until it is deleted by the sdaiDeleteAggr operation or until the open EDMserver session is closed by the function sdaiCloseSession or the current open database is closed. The resulting union aggregate can only be accessed by read operations. It is not permitted to change the contents of an union aggregate. All read (get) operations available for SET and BAG aggregate types are available for accessing union aggregates. This operation is only applicable to data models. The actual data model must be open before this operation can be successfully performed.
Note: The creation and deletion of instance types held by an union aggregate will influence the contents of the related union aggregates, hence it is recommended to delete and re-create the related union aggregate after such operations.
Arguments
Type | Name | Comment |
SdaiModel | modelId | A numeric modelID that uniquely identifies the data model of interest in the EDMdatabase. The modelID is returned from the functions: sdaiCreateModel , sdaiCreateModelBN , sdaiOpenModelBN , edmiGetModel , edmiGetModelBN , sdaiGetInstanceModel |
SdaiInteger | numberofEntities | Specifies the number of instance types that constitutes the created union aggregate, i.e., the number of elements in the <entities> argument. |
SdaiEntity | entities | An array of entityID that defines the instance types that constitutes the union aggregate. A numeric entityID uniquely identifies an entity definition instance in a dictionary model in the EDMdatabase. This entity definition must be defined in the underlying schema of the actual model specified by the <modelId> argument. The number of elements in the <entities> argument is specified in the <numberOfEntities> argument. |
Return Value
Type | Comment |
SdaiAggr |
Options
Example
SdaiAggr unionAggr; SdaiModel modelId; SdaiEntity entities[MAX_ENTITIES]; int eIndex; ... eIndex = 0; entities[eIndex++] = sdaiGetEntity(modelId, "HumanBeing"); entities[eIndex++] = sdaiGetEntity(modelId, "Animal"); unionAggr = edmiCreateUnionAggr (modelId, eIndex, entities); if (! unionAggr) { /* Error in operation */ printf("\nError in edmiCreateUnionAggr: %s\n", edmiGetErrorText(sdaiErrorQuery())); goto error; } . . .
See also
Filter by label
There are no items with the selected labels at this time.