Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

 

Code Block
languagecpp
themeConfluence
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

...

Insert excerpt
US:_r_EDMInterface
US:_r_EDMInterface
nopaneltrue

Options

...

 

Example

...

 

Code Block
languagecpp
 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 (Content by label)
showLabelsfalse
showSpacefalse
cqllabel = "model" and parent = "6062220"