Porovnávané verzie
porovnané s
Kľúč
- Tento riadok sa pridal
- Riadok je odstránený.
- Formátovanie sa zmenilo.
Akcia INSERTARCHARR
Funkcia
Zmena alebo zápis poľa hodnôt do archívu.
Deklarácia
Blok kódu | ||||
---|---|---|---|---|
| ||||
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, default prepočty sú povolené - @TRUE). |
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.
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:
Blok kódu | ||||
---|---|---|---|---|
| ||||
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 |
Blok kódu | ||||
---|---|---|---|---|
| ||||
; zápis INSERTARCHARR H.ArchObj, _data^value, _retCode ; test úspešnosti akcie IF _retCode # _ERR_NO_ERROR THEN ; chyba pri zápise ENDIF |