LoadData

LoadData

Funkcia %LoadData


Popis

Funkcia načíta dáta z SQL príkazu typu SELECT, ktorý vracia stĺpce v poradí typov: čas, hodnota a vráti ich ako zmenový vektor. Aby dáta mohli byť interpretované ako časový rad, musia byť zoradené vzostupne podľa času.

V príkaze budú reťazce @@BT@@ a @@ET@@ nahradené za hodnoty parametrov _bt resp. _et v predvolenom lokálnom čase. Reťazec @@USER_VERSION@@ bude nahradený kódom užívateľskej verzie, ktorá bola zadaná pri čítaní vektora. Ak nebola zadaná užívateľská verzia, bude parameter nahradený prázdnym reťazcom.

V prípade NULL hodnôt vo výsledku SQL dopytu sú do EDA-L vrátené neplatné hodnoty.

V príkaze je možné použiť reťazce v tvare @@<number>_<type>@@, kde za <number> je možné dosadiť čísla 1 až 9, ktoré zodpovedajú voliteľným parametrom SQL dopytu (_param1_param9) a za <type> je možné dosadiť jeden z identifikátov typu parametra:

  • I pre celočíselný parameter

  • R pre reálne číslo

  • TL pre lokálny čas

  • TU pre UTC čas

Napr. @@1_I@@ dosadí prvý voliteľný parameter SQL dopytu (_param1) ako celé číslo a @@2_TU@@ dosadí druhý voliteľný parameter ako UTC čas. Vynechaný voliteľný parameter alebo neplatná hodnota bude dosadená ako NULL hodnota.

Deklarácia

VECTOR %LoadData( TEXT _select [, [BOOL _monoTime := 0] [, [INT _utcHourOffset := 0] [, [TIME _bt := 0] [, [TIME _et := 0] [, [BOOL|INT|REAL|TIME _param1] [, [BOOL|INT|REAL|TIME ...] [, [BOOL|INT|REAL|TIME _param9]]]]]]]] )

Parametre

_select

SQL dopyt vracajúci minimálne dva stĺpce v poradí typov: čas, hodnota.

_monoTime

Príznak určujúci či vrátené časové značky SQL dopytu sú v monotónnom (1) alebo predvolenom lokálnom čase (0).

_utcHourOffset

Posun v hodinách oproti UTC času v prípade použitia monotónnych časových značiek.

_bt

Čas, ktorý bude v dopyte dosadený za reťazec @@BT@@ v predvolenom lokálnom čase.

_et

Čas, ktorý bude v dopyte dosadený za reťazec @@ET@@ v predvolenom lokálnom čase.

_param1,
...,
_param9

Voliteľné parametre SQL dopytu.

Príklad

-- Načíta dáta z externej tabuľky a vráti ich ako vektor. Výstupné časové značky interpretuje v UTC čase. VECTOR _v; _v := %LoadData("SELECT date, value FROM ext.data_table WHERE date BETWEEN @@1_TU@@ AND @@2_TU@@ ORDER BY date", 1, 0, , , _BT, _ET); RETURN _v;