aop_getvale¶
aop_getvale liefert Werte von Applikations-Elementen. Gegenüber der Funktion aop_getval können weitere Vergleichsoperatoren und Wildcards verwendet werden. Weitere Informationen finden Sie in Chapter 8, Extended Query der ASAM-ODS Dokumentation.
-
nvSeq = aop_getvale(envId, reqType, repList, nsSeq, jdSeq, refDef, rowCnt, cl)
Returnwert
nvSeq ist ein Objekt mit folgendem Aufbau:
nvSeq.n >= 0
nvSeq[1].AOP_AIDNameV_Seq.n >= 0
nvSeq[1].AOP_AIDNameV_Seq[1].aid
nvSeq[1].AOP_AIDNameV_Seq[1].name
nvSeq[1].AOP_AIDNameV_Seq[1].unitId
nvSeq[1].AOP_AIDNameV_Seq[1].valMap.dtyp
nvSeq[1].AOP_AIDNameV_Seq[1].valMap.val
Das Element nvSeq[1].valMap.val
enhält die Werte aller Instanzen als
UniScript-Vektor.
Im Fehlerfall liefert die Funktion ein Error-Objekt (siehe error_create).
Parameter
-
envId
envId ist die Environment-ID, die von der Funktion aop_openenv geliefert wird.
-
reqType
regType ist ein skalarer Wert um den Zugriff über den der Datenzugriff gesteuert werden kann, z. B. blockweise zu lesen. C:
enum AOP_ReqType {
RTDEFAULT = 0,
RTOPEN = 1,
RTCONTINUE = 2,
RTCLOSE = 3,
};
-
repList
repList ist eine Liste mit den Attributen, für die Werte erfragt werden sollen. Die Liste hat den folgenden Aufbau (Beispiel für zwei Attribute):
// rlType = RLSELECTIVE;
repList = [. n = 2];
repList[1] = [.];
repList[1].aid = 6;
repList[1].name= "iName";
repList[1].unitId = 0;
repList[2] = [.];
repList[2].aid = 6;
repList[2].name= "Id";
repList[2].unitId = 0;
Falls alle Attribute erfragt werden sollen, kann eine Liste von aid (AOP_Id)
definiert werden:
// rlType = RLCOMPLETE;
repList = [5, 6];
-
nsSeq
nsSeq ist ein Array von AOP_AIDNameS-Strukturen. Damit können Suchbedingungen definiert werden. Sollen alle Elemte geliefert werden (select * from Test) wird nsSeq = 0 gesetzt. Aufbau:
nsSeq.n
nsSeq[1].selOpcode
nsSeq[1].aid
nsSeq[1].name
nsSeq[1].valMap.dtyp
nsSeq[1].valMap.val
nsSeq[1].dir
C:
struct AOP_AIDNameS {
AOP_SelOpcode selOpcode;
AOP_Id aid;
AOP_Name name;
AOP_ValMap valMap;
AOP_SortDir dir;
};
UniScript:
nsSeq = [. n=1];
nsSeq[1] = [.];
nsSeq[1].selOpcode = ODS_SOLIKE;
nsSeq[1].aid = 6; // Test
nsSeq[1].name = "iName";
nsSeq[1].valMap = [.];
nsSeq[1].valMap.dtyp = ODS_DT_STRING;
nsSeq[1].valMap.val = "T*";
nsSeq[1].dir = 0; // 0=Ascending, 1=Decending
-
jdSeq
jdSeq enthält die Join-Definitionen. Sollen keine Joins ausgewertet werden, wird jdSeq = 0 gesetzt.
-
refDef
refDef enthält die Referenz-Definition. Soll keine Referenz definiert werden wird refDef = 0 gesetzt. Die Struktur hat in UniScript den folgenden Aufbau:
refDef = [.];
refDef.refName =
refDef.fromAid =
refDef.elemID_aid =
refDef.elemID_iid =
-
rowCnt
rowCnt ist die maximale Anzahl an Records, die zurück gelierfert werden sollen. Der Wert -1 liefert alle Records.
-
cl
cl ist der Client-Pointer, der von der Funktion rpc_clnt_create geliefert wird.
Beispiel
def test_aop_getvale()
{
aop = aop_create(FALSE); // Connects to the server
nuSeq = [. n=1, 1 = [. name = "WILDCARD_ONE", unitId = 0]];
nvSeq = aop_getpar(aop.envId, nuSeq, aop.cl)
a = nvSeq[1];
ssWildCard_One = a.valMap.val;
nuSeq = [. n=1, 1 = [. name = "WILDCARD_ALL", unitId = 0]];
nvSeq = aop_getpar(aop.envId, nuSeq, aop.cl)
a = nvSeq[1];
ssWildCard_All = a.valMap.val;
reqType = 1;
repList = 0;
// rlType = RLSELECTIVE;
repList = [. n = 2];
repList[1] = [.];
repList[1].aid = 6;
repList[1].name= "iName";
repList[1].unitId = 0;
repList[2] = [.];
repList[2].aid = 6;
repList[2].name= "Id";
repList[2].unitId = 0;
// To read all attributes (RLCOMPLETE);
// repList = [6];
nsSeq = [. n=1];
nsSeq[1] = [.];
nsSeq[1].selOpcode = ODS_SOLESSEQ; // ODS_SOGREATEREQ;
nsSeq[1].aid = 6; // Test
nsSeq[1].name = "iStartTime";
nsSeq[1].valMap = [.];
nsSeq[1].valMap.dtyp = ODS_DT_STRING;
nsSeq[1].valMap.val = "20060220163014";
nsSeq[1].dir = 0;
/*
nsSeq[1] = [.];
nsSeq[1].selOpcode = ODS_SOLIKE;
nsSeq[1].aid = 6; // Test
nsSeq[1].name = "iName";
nsSeq[1].valMap = [.];
nsSeq[1].valMap.dtyp = ODS_DT_STRING;
nsSeq[1].valMap.val = "T*";
nsSeq[1].dir = 0;
*/
jdSeq = 0;
refDef = 0;
rowCnt = -1;
nvSeq = aop_getvale(aop.envId, reqType, repList, nsSeq, jdSeq, refDef, rowCnt, aop.cl)
if (type(nvSeq) == "error") {
return ;
}
// print to command window:
if (nvSeq.n > 0) {
for (iSeq in 1:nvSeq.n) {
a = nvSeq[iSeq];
for (i in 1:a.n) {
b = a[i];
print b.name + "="
print b.valMap.val
}
}
}
}
History
Version | Beschreibung |
---|---|
5.9.0 | Neu |
Siehe auch
id-128083