.. highlightlang:: us .. index:: aop_getvale .. _aop_getvale: aop_getvale =========== .. us.tag aop_getvale NOTREADYGERMAN New590 asam3 :ref:`aop_getvale` liefert Werte von Applikations-Elementen. Gegenüber der Funktion :ref:`aop_getval` können weitere Vergleichsoperatoren und Wildcards verwendet werden. Weitere Informationen finden Sie in Chapter 8, Extended Query der ASAM-ODS Dokumentation. .. function:: nvSeq = aop_getvale(envId, reqType, repList, nsSeq, jdSeq, refDef, rowCnt, cl) .. us.return **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 :ref:`error_create`). .. us.params **Parameter** .. uparam:: envId *envId* ist die Environment-ID, die von der Funktion :ref:`aop_openenv` geliefert wird. .. uparam:: 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, }; .. uparam:: 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]; .. uparam:: 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 .. uparam:: jdSeq *jdSeq* enthält die Join-Definitionen. Sollen keine Joins ausgewertet werden, wird *jdSeq* = 0 gesetzt. .. uparam:: 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 = .. uparam:: rowCnt *rowCnt* ist die maximale Anzahl an Records, die zurück gelierfert werden sollen. Der Wert -1 liefert alle Records. .. uparam:: cl *cl* ist der Client-Pointer, der von der Funktion :ref:`rpc_clnt_create` geliefert wird. .. us.example **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 } } } } .. us.history **History** .. list-table:: :header-rows: 1 * - Version - Beschreibung * - 5.9.0 - Neu .. seealso:: :ref:`uberblick-asam-ods` :sub:`id-128083`