- Vytvoril/a D2000 Dev Team, naposledy zmenené okt 12, 2023
Funkcia %HI_RefreshData
- pre zobrazovač typu Browser - znovu načítanie (aktualizáciu) zobrazených dát. Umožňuje taktiež zmeniť triediacu podmienku alebo spôsob usporiadania (triedenie).
- pre zobrazovač typu Report (ktorý obsahuje report typu Crystal report) - nastavenie hodnôt parametrov, pre ktoré bola zavolaná funkcia %HI_ReportPar.
%HI_RefreshData( INT in refId [, TEXT in whereStr [, TEXT in orderByStr [, in par1[, in par2[, ...]]]]] )
BOOL %HI_RefreshDataSync( INT in refId [, TEXT in whereStr [, TEXT in orderByStr [, in par1[, in par2[, ...]]]]] )
%HI_RefreshDataTrans( INT in refId , INT in transHandle [, TEXT in whereStr [, TEXT in orderByStr [, in par1[, in par2[, ...]]]]] )
refId | Odkaz na zobrazovač (referenčná premenná). |
transHandle | Jednoznačné číslo (handle) spojenia s databázou získané akciou DB_TRANS_OPEN |
whereStr | SQL podmienka WHERE pre obmedzenie výberu zobrazených dát (len pre zobrazovač typu Browser). Pri zadaní podmienky #empty# sa do Browsera nenačítajú žiadne dáta. |
orderByStr | SQL príkaz ORDER pre riadenie poradia výberu (triedenie) zobrazených dát (len pre zobrazovač typu Browser). |
par1, par2, ... | Zoznam konštánt alebo lokálnych premenných, ktoré sa použijú na mieste parametrov parametrizovanej SQL podmienky. |
Podmienku a triedenie je možné zadať aj pri konfigurácii zobrazovača v prostredí D2000 GrEditor. Pri volaní funkcie %HI_RefreshData sú tieto zmenené (ak sú uvedené) a zobrazenie sa aktualizuje.
Pre zobrazovač typu Report sú tieto parametre nepoužiteľné.
Podmienka zmenená volaním funkcie %HI_RefreshData môže byť parametrizovaná. Použitím parametrizácie je možné uľahčiť prácu SQL databáze, pretože príprava (kompilácia) parametrizovaného SQL výrazu sa vykoná iba pri zmene podmienky alebo triedenia (t.j. textovej podoby SQL výrazu). Vhodným nastavením parametrov databázy (napr. Oracle: session_cached_cursors) je možné zabezpečiť recyklovanie kurzorov (skompilovaných príkazov) medzi volaniami %HI_RefreshData.
Pravidlá pre parametre:
- parameter refId musí byť platný vždy,
pravidlá pre parametre whereStr a orderByStr:
Zadaný platný Nezadaný alebo zadaný, ale neplatný whereStr zmena podmienky Ostáva v platnosti naposledy zadaná podmienka (ak nebola nikdy zadaná, tak prázdny reťazec). orderByStr zmena triedenia Ostáva v platnosti naposledy zadané triedenie (ak nebolo nikdy zadané, tak prázdny reťazec). - ak sú parametre par1 až parN zadané, ich počet musí zodpovedať podmienke (počet #PAR#), pričom pri zmene podmienky nesmú byť vynechané,
- ak má niektorý parameter par1 až parN neplatnú hodnotu, reprezentuje to hodnotu NULL.
Funkcia %HI_RefreshData vykoná svoju činnosť tak, že nové podmienky zobrazenia doručí príslušnému zobrazovaču a končí bez ohľadu na výsledok alebo úspešnosť zobrazenia.
Funkcia %HI_RefreshDataSync na rozdiel od funkcie %HI_RefreshData počká na vykonanie výberu podľa nových parametrov a úspešnosť operácie oznámi prostredníctvom svojej hodnoty (@TRUE = úspešné vykonanie, @FALSE = chyba). Ak je browser zobrazujúci DB tabuľku nakonfigurovaný tak, že je inicializovaný automaticky (parameter "Otváracia podmienka" je zaškrtnutý), funkciu nie je možné použiť v inicializačnej (BEGIN..END) časti schémy - v takom prípade vráti @FALSE.
Funkcia %HI_RefreshDataTrans na rozdiel od funkcie %HI_RefreshData iba naplánuje vykonanie obnovy dát v zobrazovači. 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á. Pokiaľ je funkcia %HI_RefreshDataTrans volaná viackrát pre ten istý zobrazovač, po commite sa vykoná iba jedna obnova (s parametrami posledného volania funkcie %HI_RefreshDataTrans).
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.
Pokiaľ bola zmenená veľkosť schémy so zobrazovačom typu Browser, ktorý ma nakonfigurovaný dynamický počet riadkov podľa výšky browsera (parameter Riadkov), dôjde až pri volaní funkcie %HI_RefreshData k znovu načítaniu stránky so zmeneným počtom riadkov.
%HI_RefreshData(_browser) ; aktualizácia (bez zmeny podmienky, triedenia či parametrov) %HI_RefreshData(_browser, "ID=21") ; zmena podmienky a aktualizácia %HI_RefreshData(_browser, "ID=21", "ID") ; zmena podmienky, triedenia a aktualizácia
INT _cnt ; lokálna premenná pre parametrizovanú podmienku TEXT _name ; lokálna premenná pre parametrizovanú podmienku TEXT _INVALID = 1/0 ; pomocná neplatná konštanta typu text _cnt := 1 _name := "%SELF%" ; 1. zmena podmienky (parametrizovanej), triedenia, parametrov a aktualizácia %HI_RefreshData(_browser, "CNT=#PAR# AND NAME LIKE #PAR#", "NAME", _cnt, _name) _cnt := 2 _name := "%ODBC%" ; 2. len zmena parametrov (recyklácia SQL výrazu) a aktualizácia %HI_RefreshData(_browser, "CNT=#PAR# AND NAME LIKE #PAR#", "NAME", _cnt, _name) %HI_RefreshData(_browser, _INVALID, _INVALID, _cnt, _name) ; rovnocenná alternatíva pre zápis o riadok vyššie (ak sa od bodu 1. podmienka nezmenila) ; 3. bez zmeny (recyklácia SQL výrazu) a aktualizácia %HI_RefreshData(_browser, "CNT=#PAR# AND NAME LIKE #PAR#", "NAME", _cnt, _name) %HI_RefreshData(_browser) ; rovnocenná alternatíva pre zápis o riadok vyššie (ak sa od bodu 2. podmienka, triedenie a parametre nezmenili)
Súvisiace stránky:
0 komentárov