edmiVersionGetAttrDatatype


 

EdmiError edmiVersionGetAttrDatatype(SdaiInstance      instance,
                                      SdaiVersion       version,
                                      SdaiAttr          attributeId, 
                                      SdaiPrimitiveType *datatype);

Returns the primitive data type of a value stored in an attribute of a given application instance within a model version other than the current.

Arguments


TypeNameComment
SdaiInstance

instance

The instanceID of an application instance in the edmModel for which the data type of the actual stored data in a given attribute shall be checked for an earlier version of the model.

SdaiVersion

version

The version number of the edmModel in question. The version number is a sequence number counting from one with an increment of one for each new model version created.

SdaiAttr

attributeId

A numeric attributeID that uniquely identifies the attribute definition instance in the EDMdatabase.
The attributeID is returned from the sdaiGetAttrDefinition and sdaiGetAttrDefinitionBN functions.

SdaiPrimitiveType

datatype

Address of a variable that will receive the primitive type of the data stored in the given attribute of <instance> for the <version> of the edmModel.

Return Value


Error rendering macro 'excerpt-include' : User 'null' does not have permission to view the page 'US:_r_EDMInterface'.

Options


 

Example


 

 EdmiError rstat;
 SdaiInteger nWrn, nErr;
 SdaiRepository repId;
 SdaiModel modelId;
 SdaiVersion version1Id, version2Id;
 SdaiModelVersion modelVersionId;
 SdaiInteger myInteger;
 SdaiReal myReal;
 SdaiInstance instId;
 SdaiAttr attrId;
 SdaiPrimitiveType type;
  
 /* Compile schema */
 rstat = edmiCompileFile("c:/data/MyFile.exp",
 "c:/tmp/MyFile.dia", 
 "MySchema", 0, &nWrn, &nErr); 
 /* Create Model */
 rstat = edmiGetRepository("MyRepository", &repId);
 modelId = edmiCreateModelBN(repId, "MyModel", "MySchema", 0);
 /* Populate Model */
 instId = edmiCreateInstanceAndPutAttrsBN(modelId, "MyEntity", 1,
 "REAL_ATTR", sdaiREAL, 3.14);  
 /* Create version 1 */
 rstat = edmiCreateModelVersion("MyRepository", "MyModel",
 "V1", &modelVersionId); 
 /* Change population */
 sdaiPutAttrBN(instId, "REAL_ATTR", sdaiINTEGER, 1);
 /* Create version 2 */
 rstat = edmiCreateModelVersion("MyRepository", "MyModel",
 NULL, &modelVersionId); 
 /* Get Id of version 1 */
 rstat = edmiGetModelVersionIdBN("MyRepository", "MyModel",
 "V1", &modelVersionId, &version1Id); 
 /* Type is sdaiREAL */
 rstat = edmiVersionGetAttrDatatypeBN(instId, version1Id,
 "REAL_ATTR", &type);
 /* Value is 3.14 */ 
 if (type != sdaiREAL) goto error;
 rstat = edmiVersionGetAttrBN(instId, version1Id, "REAL_ATTR",
 type, &myReal); 
 /* Get Id of version 2 */
 attrId = sdaiGetAttrDefinitionBN("MySchema", "MyEntity", "REAL_ATTR");
 rstat = edmiGetModelVersionId(modelId, "version2",
 &modelVersionId, &version2Id); 
 /* Type is now sdaiINTEGER */
 rstat = edmiVersionGetAttrDatatype(instId, version2Id,
 attrId, &type); 
 /* Value is 1 */
 if (type != sdaiINTEGER) goto error;
 rstat = edmiVersionGetAttr(instId, version2Id, attrId,
 type, &myInteger);
 /* Roll back to version 1 */
 rstat = edmiRollbackModel(modelId, version1Id,
 KEEP_ALL_MODEL_VERSIONS); 
 /* Delete version 2 */
 edmiDeleteModelVersion(modelId, version2Id);
 error:
 . . . 

 

See also

Filter by label

There are no items with the selected labels at this time.