Akcia DB_REFRESH_TABLE


Funkcia
Akcia vynúti obnovu (Refresh) zobrazených dát v pohľadoch užívateľa v procese D2000 HI (napríklad zobrazovač typu Browser).
Deklarácia
DB_REFRESH_TABLE dbObjIdent[, retCodeIdent_Int] [ON procIdent]
DB_REFRESH_TABLE dbObjIdent TRANS transHandle [ON procIdent]
Parametre
dbObjIdentinOdkaz na objekt typu Tabuľka.
retCodeIdent_Intout Identifikátor - návratový kód.
transHandlein Identifikátor otvorenej transakcie získaný akciou DB_TRANS_OPEN
procIdentin Identifikátor procesu D2000 HI.
Návratový kód
Hodnota parametra retCodeIdent_Int - pozri tabuľku chybových stavov. Je možné získať rozšírenú informáciu o chybe.
Popis

Akciu je vhodné použiť, ak dochádza k zmene dát v tabuľke a je potrebné tieto hneď zverejniť v pohľadoch užívateľa (zobrazovač typu Browser).

Ak nie je zadaný parameter retCodeIdent_Int, akcia má význam výzvy k obnove dát bez čakania na výsledok (alebo ukončenie obnovy).

Ak parameter retCodeIdent_Int je zadaný (návratový kód), akcia bude ukončená až po ukončení aktualizácie všetkých zobrazovačov typu Browser (ak je zadaný parameter procIdent) vo všetkých otvorených procesoch D2000 HI.

Ak je zadaný parameter procIdent, aktualizácia sa vykoná iba na zadanom procese D2000 HI, inak sa vykoná na všetkých otvorených procesoch D2000 HI.  


Ak je zadaný parameter transHandle tak sa iba naplánuje vykonanie obnovy dát. Obnova sa vykoná, až keď sa transakcia transHandle commituje akciou DB_TRANS_COMMIT. Pokiaľ je databázová operácia stornovaná (akcia DB_TRANS_ROLLBACK), obnova dát da nevykoná. 
Poznámka: Transakcia transHandle môže byť otvorená aj voči inému objektu typu Databáza (inému ako je Databáza, ktorá je rodičom tabuľky, ktorej dáta sú v zobrazovači), ale je nutné, aby tento objekt typu Databáza mal rovnakého rodiča (proces DBManager) ako je Databáza, ktorá je rodičom tabuľky, ktorej dáta sú v zobrazovači.

Poznámka
Ak sú v niektorej tabuľke modifikované dáta akciami DB(S)_INSERT, DB(S)_UPDATE, DB(S)_INSUPD, DB(S)_DELETE, PG_INSERT, PG_UPDATE, PG_DELETE (v netransakčnom režime), akciou DB_TRANS_COMMIT (komitujúc transakciu, v rámci ktorej bola volaná aspoň jedna z predchádzajúcich akcií) alebo priamo editáciou v Browseri, proces D2000 DBManager automaticky obnoví dáta vo všetkých Browseroch, ktoré majú túto tabuľku otvorenú, takže nie je nutné volať akciu DB_REFRESH_TABLE. Akciu DB_REFRESH_TABLE je nutné volať iba, ak boli dáta v tabuľke modifikované "odboku" - iným spôsobom, ako sú hore uvedené akcie (volaním uloženej procedúry, akciou SQL_EXEC_DIRECT a pod).

Súvisiace stránky:

Napíšte komentár