Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Code Block
languagecpp
themeConfluence
EdmiError edmiGetMethodSignatureId(SdaiString   methodType
                                    SdaiString   methodName,
                                    SdaiString   schemaName
                                    SdaiInstance *methodId);

Returns the instance of EDM_METHOD in the ExpressDataManager model that describes a given method.
  A method is either an Express-X Schema Map or a query function. Related functions: edmiDefineMethodSignature, edmiDeleteMethodSignature, edmiDeleteMethodSignatureBN, edmiGetMethodSignature , edmiModifyMethodSignature edmiListMethodSignatures, edmiGetMethodSignatureBN.
Header:
#include "sdai.h"
Prototype:
EdmiError edmiGetMethodSignatureId(SdaiString   methodType
                                    SdaiString   methodName,
                                    SdaiString   schemaName
                                    SdaiInstance *methodId);
Arguments:

Arguments

...



. Eg: "MySchema.MyQuerySchema"
SchemaMap, ExpressSchema, QuerySchema
TypeNameComment
SdaiString

methodType

  • "XPX" if the method is an Express-X Schema Map.
  • "QEX" if the method is a query function.
SdaiString

methodName

If the method is an Express-X Schema Map, this shall be the method name that was assigned to the method when it was defined with edmiDefineMethodSignature.

  If the method is a query function, the method name shall be the name of the query function it self.

SdaiString

schemaName

If the method is an Express-X Schema Map, this variable shall be the name of the mapping schema. E.g "MySchemaMap".

  If the method is a query function, this variable shall be the name of the query schema containing the query in question, qualified with the name of the parent Express schema

.

SdaiInstance

methodId

Variable that will receive the instance Id of the method. This is an instance of the EDM_METHOD entity in the ExpressDataManager model

...

Return Value

...

Insert excerpt
US:_r_EDMInterface
US:_r_EDMInterface
nopaneltrue

Options

...

 

Example

...

 

Code Block
languagecpp
 EdmiError rstat;
 SdaiInteger nErr, nWrn;
 SdaiInstance qexMethodId;
  
 /* Define Schemas */ 
 rstat = edmiDefineSchema("c:/data/person.exp",

...


 "c:/temp/person.dia",

...


 "Person", 0, &nWrn, &nErr);

...


 rstat = edmiDefineQuerySchema("c:/data/person_queries.qex",

...


 "c:/data/person_queries.dia",

...

 
 0, &nWrn, &nErr);

...

 
  
 /* Get Signature Ids */

...


 rstat = edmiGetMethodSignatureId("QEX", "SexHeavierThan",

...


 "Person.Queries", &qexMethodId);

...

 
 . .

...

 .
  
 Express Schema
 - --------------------------------------------------------------
 -

...

 File : c:/data/person.exp

...


 - --------------------------------------------------------------

...


 SCHEMA person;

...


 ENTITY aperson;

...


 name : STRING;

...


 sex : STRING;

...


 weight : REAL;

...


 END_ENTITY;

...


 END_SCHEMA;

...


  
 Query Schema.
 - --------------------------------------------------------------

...


 - File : c:/data/person_queries.qex

...


 - --------------------------------------------------------------

...


 QUERY_SCHEMA queries FOR person;

...


 GLOBAL

...


 DECLARE src INSTANCE OF person;

...


 END_GLOBAL;

...


  
 VIEW_ENTITY PersonView;

...


 name : STRING;

...


 sex : INTEGER;

...


 weight : REAL;

...


 END_VIEW_ENTITY;

...


 QUERY_FUNCTION SexHeavierThan ( p_sex:INTEGER; p_weight:REAL)

...


 : SET OF PersonView;

...


 LOCAL

...


 result : SET of PersonView;

...


 currView : PersonView;

...


 END_LOCAL;

...


  
 FROM(s:src::aperson)

...


 WHEN TRUE;

...


 BEGIN

...


 IF((s.sex = p_sex) AND (s.weight > p_weight)) THEN

...


 NEW currView;

...


 currView.name := s.name;

...


 currView.sex := s.sex;

...


 currView.weight := s.weight;

...


 result ++ currView;

...


 END_IF;

...


 END;

...


 RETURN(result);

...


 END_QUERY_FUNCTION;

...


 END_QUERY_SCHEMA;

 

See also

Filter by label (Content by label)
showLabelsfalse
showSpacefalse
cqllabel = "model" and parent = "6062220"