Akcia GETARCHCOL


Funkcia
Hromadné čítanie hodnôt z archívu.
Deklarácia
GETARCHCOL archIdent, locRecDstIdent, timeFromIdent_TmA, timeToIdent_TmA, stepIdent_Int, maxValsIdent_Int, statusIdent_Int [,archivInstance_Int] [TIMEBYROW | TIMEBYCOL]
Parametre
archIdentinOdkaz na položku:alebo odkaz na jedno-stĺpcový archívny objekt.
locRecDstIDentoutLokálna premenná typu Record - výsledok čítania.
timeFromIdent_TmAinIdentifikátor typu Absolútny čas - začiatok intervalu.
timeToIdent_TmAinIdentifikátor typu Absolútny čas - koniec intervalu.
stepIdent_IntinIdentifikátor typu Int - časový krok pre prevzorkovanie hodnôt v archíve.
Detaily prevzorkovania - viď Poznámka o prevzorkovaní.
maxValsIdent_IntinMaximálny počet hodnôt.
Ak v je v danom intervale väčší počet hodnôt, budú orezané a akcia vráti upozornenie ERR_MORE_DATA v identifikátore statusIdent_Int.
statusIdent_IntoutÚspešnosť čítania.
TIMEBYROW
Rozmiestnenie výsledných hodnôt v čase po riadkoch.
TIMEBYCOL
Rozmiestnenie výsledných hodnôt v čase po stĺpcoch.
archivInstance_IntinNepovinný identifikátor typu Int - identifikácia inštancie archívu. Ak nie je uvedený, nahradí sa hodnotou 0.
Popis
Akcia (podobne ako akcia GETARCHROW) na základe parametra archIdent generuje viacej požiadaviek na čítanie archívu naraz a synchrónne čaká na ich ukončenie. Políčko archIdent určuje stĺpec, na základe ktorého sa budú generovať požiadavky na archívne dáta.

Parameter archIdent môže byť zapísaný jedným z nasledujúcich spôsobov:

  1. Stĺpec lokálnej premennej typu "typový ALIAS"
    Príklad:
    ALIAS (definícia štruktúry) _lAT
    SET _lAT AS SV.Struct
    GETARCHCOL _lAT[0]^Item1 , ...

    Jednotlivé požiadavky na čítanie budú VŽDY adresované na položky štruktúry SV.Struct v danom stĺpci (aj v prípade, že položky v stĺpci sú typu Objekt).

  2. Stĺpec objektu typu Štruktúrovaná premenná
    Príklad:
    GETARCHCOL SV.Struct[0]^Item2 , ...

    Adresovanie požiadavky prebieha podľa tých istých pravidiel ako v bode 1.

  3. Stĺpec lokálnej premennej typu Record
    Príklad:
    RECORD (definícia štruktúry) _lRec
    REDIM _lRec[3]

    SET _lRec[1]^Item2 AS Sec
    SET _lRec[2]^Item2 AS SysTime
    SET _lRec[3]^Item2 AS M.MeranyBod
    .....

    GETARCHCOL _lRec[0]^Item2, ...

    Akcia vyžaduje, aby stĺpec bol typu Objekt. Jednotlivé požiadavky na čítanie budú adresované na objekty, na ktoré smerujú položky v danom stĺpci.
    Ak niektoré políčko nebude smerované na objekt, akcia končí s chybou ERR_NO_ASSIGNED_ALIAS.

  4. Stĺpec štruktúrovaného archívneho objektu
    Príklad:
    GETARCHCOL H.Struct[0]^Item2, ...

    Jednotlivé požiadavky na čítanie budú adresované postupne na všetky položky v danom stĺpci. Objekt H.Struct nemôže byť jedno-stĺpcový archívny objekt.

  5. Jedno-stĺpcový štruktúrovaný archívny objekt
    Príklad:
    GETARCHCOL H.Struct, ...

    Jednotlivé požiadavky na čítanie budú adresované postupne na všetky položky.
Výsledok čítania je uložený do lokálnej premennej _locRecDstIdent. Výsledkom každej požiadavky na čítanie je jedna hodnota alebo postupnosť hodnôt. Každá postupnosť hodnôt sa ukladá do výslednej lokálnej premennej _locRecDstIdent buď:
    • po riadkoch (podobne ako pri akcii GETARCHROW - prvému stĺpcu zodpovedajú hodnoty získané na základe požiadavky z prvého riadku (príslušného stĺpca), druhému stĺpcu zodpovedajú hodnoty získané na základe požiadavky z druhého riadku, .... Lokálna premenná _locRecDstIdent musí mať potrebný počet stĺpcov. Akcia jej automaticky zmení rozmer.
    • po stĺpcoch - každá postupnosť hodnôt je vložená do jedného riadku premennej _locRecDstIdent. Ak má niektorá postupnosť viac hodnôt ako je stĺpcov, premenná statusIdent_Int nadobudne hodnotu _ERR_MORE_DATA, ale hodnoty, ktoré bolo možné zverejniť budú do premennej _locRecDstIdent naplnené.

Hodnota parametra archivInstance_Int udáva inštanciu archívu, ktorá realizuje požiadavku. Ak nie je uvedený (alebo má hodnotu 0) požiadavku realizuje aktívna inštancia archívu.

Úspešnosť čítania akcie obsahuje premenná statusIdent_Int. Ak premenná statusIdent_Int nadobudne hodnotu _ERR_NO_DATA(22), znamená, že všetky archívy, ktoré sa použili pri čítaní, neobsahujú dáta. Ak aspoň jeden obsahuje dáta, akcia vráti _ERR_NO_ERR(0).


Súvisiace stránky:

Napíšte komentár