Akcia ON DB_CHANGE
Súvisiace stránky:
ON DB_CHANGE tableIdent GOTO [procName [PRTY prtyIdent]| NONE]
tableIdent | in | Identifikátor objektu typu Tabuľka. |
procName | in | Meno RPC procedúry v ESL skripte. |
prtyIdent | in | Nepovinný parameter typu Int. Priorita pri volaní RPC. |
Akcia ON DB_CHANGE tableIdent GOTO NONE zruší volanie procedúry pri zmene tabuľky. Jedna tabuľka môže mať v kontexte inštancie ESL skriptu maximálne jednu procedúru pre obsluhu jej zmeny. Preto opakovaná registrácia obsluhy pre jednu tabuľku bude mať za následok ESL run-time chybu a dôjde k prerušeniu vykonávania skriptu.
Procedúra procName musí mať nasledovnú deklaráciu:
RPC PROCEDURE ProcName (IN INT _dbTable, IN INT _actionId) END ProcName
Hodnota formálneho parametra _actionId je jedna z nasledovných možností:
_actionId | 0 | Úspešné zahájenie sledovania tabuľky. |
_actionId | 1 | Sledovanie tabuľky sa nepodarilo inicializovať - nebeží proces D2000 DbManager alebo identifikátor tableIdent nie je identifikátorom objektu typu Tabuľka alebo došlo k neočakávanému prerušeniu sledovania tabuľky - napríklad pád procesu D2000 DbManager. |
_actionId | 10 | D2000 DbManager vykonáva akciu DB_REFRESH_TABLE alebo bola uložená definícia štruktúry, ktorá je nakonfigurovaná na objekte typu Tabuľka. |
_actionId | 11 | D2000 DbManager dokončil operáciu
DB_*, DBS_*
PG_*
alebo
bola vykonaná operácia nad tabuľkou z procesu D2000 HI prostredníctvom užívateľského
rozhrania. Ak sú modifikácie vykonávané v rámci databázovej transakcie (DB_TRANS_OPEN ...), oznam o zmene tabuľky proces D2000 DbManager generuje pri operácii potvrdenia zmien (DB_TRANS_COMMIT). |
_actionId | 12 | Tabuľka sa vymazala z konfigurácie aplikácie. |
_actionId | 13 | Došlo k prepnutiu aktívnej inštancie procesu D2000 DbManager alebo v
redundancii D2000 Server, ku ktorému je proces D2000 DbManager
pripojený, prešiel zo stavu HOT do stavu SBS. Je nutné, aby
bola následne znovu volaná akcia ON DB_CHANGE na registráciu u nového aktívneho procesu D2000 DbManager. Poznámka: Pri prepnutí aktívnej inštancie alebo pri prepnutí redundancie D2000 (keď sa D2000 DbManager stane pasívnym), sú zatvorené všetky transakcie, ukončené všetky databázové operácie a všetky handle sú zneplatnené. Preto je nutné následne zopakovať na novej aktívnej inštancii všetky inicializačné časti skriptov (otváranie databáz, tabuliek atď.). |
Súvisiace stránky:
Pridať komentár