Funkcia slúži na nastavenie alebo zrušenie hodnôt pomenovaných parametrov databázového "kontextu" procesu EDA klient v rámci aktuálne vykonávanej postupnosti volaní ESL príkazov a skriptov. Funkcia pracuje analogicky k ESL akcii DB_SET_PROCESS_PARAMS. Obsah kontextu nie je však viazaný na celý proces, ale len na aktuálne vykonávanú postupnosť príkazov (session).

Deklarácia

%EDA_SetSessionParams(
  REC in _params,
  INT out _errorCode
 );

Parametre

  Parameter Dátový typ Typ Popis
1 params REC IN Dvojstĺpcová štruktúrovaná premenná:
paramName : TEXT (maximálne 64 znakov)
paramValue : TEXT (maximálne 64 znakov)
2 errorCode INT OUT Návratový kód.

Hodnota paramName definuje názov parametra. Hodnota paramValue definuje hodnotu parametra. Prípustné kombinácie hodnôt a ich interpretáciu znázorňuje nasledovná tabuľka.

Vplyv na výsledok paramName paramValue
Vloží alebo aktualizuje hodnotu parametra zadané zadané
Zruší parameter zadané (neplatná hodnota)
Ignoruje (nie je súčasťou požiadavky na zmenu) (neplatná hodnota) zadané
Ignoruje (nie je súčasťou požiadavky na zmenu) (neplatná hodnota) (neplatná hodnota)

Upozornenie: Ak nastane situácia, že názvy parametrov sa pri jednom volaní akcie opakujú, tak dochádza k nedefinovanému správaniu!

Kontext je jednoznačne priradený session procesu EDA klient (monolitická edadll.dll alebo edaclient.dll) a predstavuje skupinu jednoznačne pomenovaných parametrov, pričom každý parameter má svoju hodnotu.
Obsah kontextu je automaticky vkladaný do databázovej tabuľky D2000_PROCESS_PARAMS (stĺpce PARAM_NAME a PARAM_VALUE) a je viditeľný len pre session, v ktorej bol kontext vytvorený. V prípade, že tabuľka neexistuje, je automaticky vytvorená.

Príklad
 ; príklad overí výsledok funkcie EDA_SetSessionParams prečítaním tabuľky D2000_PROCESS_PARAMS
 
 RECORD NOALIAS (SD.SessionParams) _params
 RECORD NOALIAS (SD.Arr_Real) _values
 TEXT _functionBody ; predpis EDA funkcie
 INT _retCode ; návratová hodnota
 
 _params[1]^PARAM_NAME := "test_param"
 _params[1]^PARAM_VALUE := "text_value"
 CALL %EDA_SetSessionParams(_params, _retCode)
 
 _functionBody := "VEKTOR _v;"
 _functionBody := _functionBody + "_v := %LoadData(""SELECT CURRENT_DATE, Count(*) FROM D2000_PROCESS_PARAMS"");"
 _functionBody := _functionBody + "RETURN _v;"
 CALL %EDA_CalcFunction(10, 0, _functionBody, SysTime, SysTime, 0, _values, 1, 3, 1, 0, _retCode)
 
 IF _retCode = _ERR_NO_ERROR THEN
 ; štruktúra _values je naplnená, obsahuje jeden riadok
 ELSE
 ; chyba
 ENDIF
Napíšte komentár