ON DB_CHANGE
Akcia ON DB_CHANGE
Deklarácia
ON DB_CHANGE tableIdent GOTO [procName [PRTY prtyIdent]| NONE]Parametre
tableIdent | in | Identifikátor objektu typu Tabuľka. |
procName | in | Meno RPC procedúry v ESL skripte. |
prtyIdent | in |
Popis
Akcia špecifikuje procedúru (prostredníctvom mena procName), ktorá bude zavolaná, ak nastane zmena obsahu danej databázovej tabuľky. Túto zmenu identifikuje príslušný proces D2000 DbManager ako jediný interpret databázových operácií v rámci systému D2000. Ak identifikuje zmenu, automaticky generuje príkaz na zavolanie registrovanej RPC procedúry.
Kľúčové slovo PRTY umožňuje zadanie priority vykonania registrovanej RPC procedúry. Táto vlastnosť zabezpečí prioritné vykonanie registrovanej RPC Procedúry. Priorita je zadaná parametrom prtyIdent za kľúčovým slovom PRTY.
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
Namiesto RPC môže byť použité RPCX.
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. |
_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. |
Súvisiace stránky: