Internet klienti v 602SQL – WBC konektory 2.

16. července 2003

Predchádzajúci článok bol venovaný WBC konektorom – od syntaxe až po použitie systémových premenných. V tomto článku popis WBC konektorou dokončíme rozborom príkazov a definovaním chybovej šablóny.

Príkazy vo WBC konektore

Konektor môže obsahovať riadiace príkazy IF, IFEXISTS a REPEAT. Musia začínať na začiatku riadku a predchádza ich znak #. IF je normálny podmienený príkaz vetvenia a môže sa nachádzať hocikde v konektore:

#if výraz1

#elseif výraz2

#else

#endif

Ak je splnená podmienka daná prvým výrazom, bude interpretovaná časť konektora až do prvého #elseif. V prípade, že je splnená podmienka druhého výrazu, vykoná sa časť textu konektora až po #else. V opačnom prípade sa vykoná časť medzi #else a #endif. V príkaze môže byť ľubovoľný počet častí #elseif, časť #else môže by uvedená len raz.

Príkaz IFEXISTS je špeciálny podmienený príkaz vetvenia. V rámci konektoru sa môže nachádzať len vnútri bloku SQLStatement. Syntax:

#ifexists
+ SQL_príkaz_SELECT …
#then
+ riadok_SQL_príkazu …
#else
+ riadok_SQL_príkazu …
#endif

Ak príkaz SQL SELECT v prvej časti obsahuje aspoň jeden záznam, vykoná sa riadok (riadky) SQL príkazu uvedeného v druhej časti. Ak nie, vykoná sa riadok uvedený v tretej časti.

Príkaz REPEAT môže byť tiež len v časti SQLStatement. Spôsobí opakované vygenerovanie časti textu SQLStatementu na základe hodnoty riadiacej premennej var a za použitia oddeľovača delimiter:

#repeat var=riadiaca_premenná delimiter=oddelovac
+ riadok_SQL_príkazu …
#endrepeat

Typické použitie REPEAT je na automatické generovanie textu podmienky WHERE:

+ WHERE (ABC=1) AND (
#repeat var=riad_prem delimiter=` OR `
+ (DEF= „%riad_prem%“)
#endrepeat
+ )

Ak premenná riad_prem vo vstupnom formulári nadobudla hodnoty 1 a 2 (je typu CHECKBOX), potom WBIK doplní text WHERE takto:

+ WHERE (ABC=1) AND ((DEF=1) OR (DEF=2))

Definovanie chybovej šablóny

V konektore je tiež možné definovať takzvanú chybovú šablónu. Ide o jednoduchú šablónu bez konektora (ak obsahuje WBC časť, bude ignorovaná), ktorá má za úlohu informovať používateľa o vzniknutí chyby a dať mu možnosť reagovať (napríklad vrátiť sa späť). Šablóna pre WBC konektor sa definuje príkazom:

ErrorTemplate: meno_chybovej_sablony

Ak nie je uvedená, WBIK pohľadá šablónu s názvom deferr, ak ju nenájde, použije štandardnú hlášku s výpisom čísiel chýb. V chybovej šablóne sa obvykle používa podmienka na existenciu chyby na základe špeciálnych chybových premenných a číselníka chýb, napríklad:

<html>
<%if HTWErrorCode == 47%>
<head>
<meta http-equiv=“Content-Type“
content=“text/html; charset=windows-1250″>
<title>
Doplňte chýbajúce údaje
</title>
</head>
<body>
V predchádzajúcom formulári ste nevyplnili všetky údaje. Tlačítkom Back (Späť) Vášho prehliadača sa vráťte naspäť a doplňte tieto údaje!
</body>
<%else%>

<%endif%>
</html>

Číselník chýb je obsiahly a určite nemá význam ho tu zverejňovať. Uvediem len niekoľko chýb, s ktorými sa najmä zo začiatku budete pravdepodobne častejšie potýkať:

  • 1: nelze nalézt WBC konektor
  • 9: neznámý příkaz WBC preprocesoru
  • 21: nelze nalézt HTW šablonu
  • 22: neznámý HTW příkaz
  • 47: chybí povinná hodnota proměnné vyžadovaná blokem RequiredValues

Ďalšie príkazy konektora

Na doplnenie obrazu o možnostiach konektorov uvediem ešte niekoľko ďalších príkazov:

  • RequiredValues: meno_premennej [povinny_pocet_hodnot] – umožňuje uviesť povinné vstupné premenné, prípadne aj minimálne požiadavky na ne (napríklad počet znakov u textového reťazca). V opačnom prípade bude generovaná chyba a zavolaná chybová šablóna.
  • MaxRecords: pocet – umožňuje obmedziť počet záznamov SELECT-u v bloku SQLStatement. Je to jednoduchší ekvivalent príkazu LIMIT jazyka SQL.
  • Relogin: výraz – spôsobí prihlásenie iného klienta 602SQL (internet klient má štandardne meno __web). Výraz môže mať formát “meno:heslo“ alebo “meno:stareheslo:noveheslo“. V prvom prípade sa používateľ len prihlási, v druhom prípade dôjde aj k zmene hesla.
  • Template: nazov_sablony – spôsobí zavolanie šablóny po vykonaní príkazov v konektore. Použiteľné len ak je konektor ako samostatný objekt (t.j. neobsahuje text prislúchajúci šablóne).

Práve ste sa dopracovali až k záveru popisu konektorov jazyka WBIK. V nasledujúcom článku si popíšeme niektoré špeciálne prípady z praxe.

Předchozí článek nehe
Štítky: Články

Mohlo by vás také zajímat

Nejnovější

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *