Internet klienti v 602SQL – WBC konektory 1.
Predchádzajúci článok bol venovaný HTW šablónam. Témou nasledujúcich dvoch článkov budú WBC konektory. WBC konektor obsahuje popis operácií, ktoré má WBIK vykonať s databázou. Najčastejšie sú to príkazy jazyka SQL. Vybrané údaje sa potom zobrazia v HTW šablóne.
Syntax
Základná syntax WBC konektora je nasledujúca:
<%wbc%>
SQLStatement: názov
+ SELECT …
+ …
[EndSQL] <%/wbc%>
Blokov SQLStatement
v konektore môže byť aj viac, v tom prípade je nutné použiť na ich oddelenie EndSQL
. Riadky s príkazmi jazyka SQL sa začínajú znakom +
. Je možné použiť všetky príkazy, nie všetky však majú praktický význam. Najčastejšie to bude SELECT, INSERT, UPDATE a podobne. Okrem blokov SQLStatement
môžu byť v konektore aj ďalšie príkazy.
Premenné
Konektor môže používať vstupné premenné formulárov. Ďalšie premenné je možné deklarovať nasledujúcim spôsobom:
DeclareVariable: meno_premennej: typ_premennej
DeclareVariable: meno_premennej: typ_premennej :=vyraz
Typy premenných sa definujú rovnako ako v internom programovacom jazyku (teda nie SQL). Ak potrebujeme premennú naplniť konkrétnou hodnotou, môžeme to urobiť ihneď alebo použiť:
GetVariable: meno_premennej :=vyraz_alebo_premenna_projektu
Ďalšou možnosťou použitia GetVariable
je vytvorenie novej premennej na základe hodnoty premennej projektu. Typ novej premennej bude rovnaký ako premennej projektu (ktorá môže byť získaná napríklad vo volanom programe). Takúto premennú budeme môcť využiť v šablóne.
Na vstupné premenné formulára sa odkazujeme pomocou názvu uzatvoreného znakmi %
(pričom pre textové premenné nesmieme zabudnúť úvodzovky, v časti SQL príkazov odporúčam jednoduché):
%cislo%
‚%text%‘
„%text%“
Operátory
Pri tvorbe zložitejších výrazov sa uplatňujú operátory. Operátory môžu byť:
- aritmetické: (+), (-), (*), (/), (DIV), (MOD)
- logické: (AND, OR, NOT)
- porovnávacie: (<), (>), (=), (<>), (.=.), (.=), (~)
Poznáme aj niekoľko špeciálnych operátorov, napríklad exists
. Operátor vráti TRUE, ak premenná alebo stĺpec databázovej tabuľky existuje, v opačnom prípade vráti FALSE. Syntax:
Exists meno_premennej
Ďalším operátorom je už spomínaná mriežka #
, ktorá v spojení s názvom premennej alebo názvom bloku SQLStatementu vracia počet hodnôt.
Programy v konektore
V konektore sa môžeme odvolávať na procedúry programu v internom programovacom jazyku. Samozrejme s niekoľkými obmedzeniami – volaná procedúra či funkcia nesmie obsahovať príkazy, ktoré spôsobujú interaktívne akcie (napríklad Open_window, Input_box
). Prenos premenných z programov v internom jazyku do konektora je možný len v prípade, že ide o globálne premenné. Syntax si ukážeme na jednoduchom príklade:
<%wbc%>
BeginProgram: moj_program
zisti_den(%CURRENT_DATE%);
EndProgram;
GetVariable poradie := rozdiel
SQLStatement: sel_1
+ SELECT *
+ FROM Knihy
+ ORDER BY Knihy.napisal, Knihy.nazov
<%/wbc%>
Program v internom jazyku bude mať názov moj_program
a bude vyzerať takto:
//deklaracie premennych
var rozdiel : integer;
//procedura
procedure zisti_den(vstup:date);
var pomoc: string[10];
begin
pomoc := „1.1.“ + int2str(year(vstup));
rozdiel := vstup – str2date(pomoc);
end;
//hlavny program (prazdny)
begin
end.
V takomto prípade sa bude môcť premenná poradie
(ktorá získala typ INTEGER a hodnotu poradového čísla aktuálneho dňa od začiatku roku) použiť v šablóne alebo aj v inom bloku SQLStatement
. Interný programovací jazyk je klonom Pascalu, preto vám program určite nemusím podrobnejšie vysvetľovať. Telo hlavného programu v príklade neobsahuje žiaden kód.
Systémové premenné
Už v predchádzajúcom príklade ste si všimli, že som použil systémovú premennú. V stručnosti vymenujem aspoň tie najpoužívanejšie:
- SERVER_NAME – doménové meno webservera
- CURRENT_DATE – aktuálny dátum
- CURRENT_TIME – aktuálny čas
- CURRENT_TIMESTAMP – aktuálny dátum a čas
- REMOTE_ADDR – IP adresa počítača – klienta
- REMOTE_HOST – doménové meno počítača – klienta
- QUERY_STRING – zoznam všetkých vstupných formulárových premenných
- HTTP_COOKIE_xxx – hodnota COOKIE s menom xxx
- wb_url – reťazec, ktorým sa dá nahradiť začiatok adresy v odkazoch, napríklad
<A HREF="<%wb_url%>/stranka.htw">
- wb_www_object – meno aktuálneho www objektu (bez prípon .wbc, .htw, .wbs)
Mohlo by vás také zajímat
-
Členská sekce: 4 důvody proč ji mít na svém webu
12. března 2024
Nejnovější
-
Šokující data od Microsoftu: Kyberútoky rostou o stovky procent!
8. listopadu 2024 -
Chcete jedinečnou doménu? Objevte koncovky FOOD, MEME a MUSIC!
7. listopadu 2024 -
OpenAI představilo novou funkci ChatGPT Search
6. listopadu 2024 -
Windows App: Pracujte odkudkoliv, kdykoliv
3. listopadu 2024