%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[, ...]]]]] ) |
refId | Odkaz na zobrazovač (referenčná premenná). |
whereStr | SQL podmienka WHERE pre obmedzenie výberu zobrazených dát (len pre zobrazovač typu Browser). |
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:
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). |
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.
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) |