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


TypeNameComment
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.
The entityID is returned by the sdaiGetEntity function.

Return Value


TypeComment
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.