INSERTARCHARR

INSERTARCHARR

Akcia INSERTARCHARR


Funkcia

Zmena alebo zápis poľa hodnôt do archívu.

Deklarácia

INSERTARCHARR archIdent, locVarColValueIdent_Rec [,[retIdent_Int], bRecalcStat_Bool]

 

Parametre

archIdent

in

Odkaz na jednu (archívnu) hodnotu - (nie je kontrolované, či sa pracuje s archívnym objektom - stačí odkaz na objekt).

locVarColValueIdent_Rec

in

Identifikátor stĺpca lokálnej premennej typu RECORD.

retIdent_Int

out

Identifikátor typu Int - návratový kód - úspešnosť zápisu (nepovinný parameter).

bRecalcStat_Bool

in

Identifikátor typu Bool - povolenie / zakázanie prepočtu súvisiacich štatistických archívnych objektov (nepovinný parameter).

 

Popis

Akcia zapíše pole hodnôt do archívu pre archívny objekt daný parametrom archIdent. Pole hodnôt predstavuje stĺpec na ktorý sa odkazuje parameter locVarColValueIdent_Rec. Čas, pre ktorý sú jednotlivé hodnoty do archívu zapísané, je daný časom vzniku hodnôt. Ak nie je uvedený identifikátor retIdent_Int, akcia nečaká na potvrdenie zápisu. Ak je identifikátor uvedený, nadobúda niektorú z nasledujúcich hodnôt:

  • _ERR_TRANS_ABORT

  • _ERR_TRANS_ERROR

  • _ERR_TRANS_IGNORED

  • _ERR_NO_ERROR

 

Poznámka

Ak nie je uvedený identifikátor retIdent_Int, skript nemá žiadnu spätnú väzbu pre zistenie úspešnosti zápisu. Čas trvania akcie je krátky, lebo ide len o požiadavku, ktorá je odoslaná do systému.

Ak je identifikátor retIdent_Int uvedený, skript čaká na fyzický zápis hodnôt do archívnej databázy aj na ukončenie prepočtu súvisiacich štatistických archívnych objektov.

Dôsledok:
Ak použijem akciu zápisu do archívu bez čakania a následne budem túto hodnotu čítať, prečítaná hodnota takmer určite nebude tá, ktorú som v predchádzajúcej akcii zapisoval.

Prepočet súvisiacich štatistických objektov je možné zakázať, ak uvedieme nepovinný parameter bRecalcStat_Bool s hodnotou @FALSE.

 

Príklad

Zápis hodnoty do archívu:

 

RECORD (SD.ArchDemo) _data INT _value INT _idx TIME _bt INT _retCode _bt := %StrToTime("8:01:00 16-10-2003") REDIM _data[60] ; naplním nejaké dáta _idx := 1 _value := 100 DO_LOOP EXIT_LOOP _idx > _data\DIM _data[_idx]^value := _value TIME _bt _idx := _idx + 1 _value := _value + 1 _bt := %AddTime(_bt, 1) END_LOOP
; zápis INSERTARCHARR H.ArchObj, _data^value, _retCode ; test úspešnosti akcie IF _retCode # _ERR_NO_ERROR THEN ; chyba pri zápise ENDIF

 


Súvisiace stránky:

Akcie v skriptoch