WBC konektory jsou bu∩ samostatnΘ databßzovΘ objekty (kategorie WWW objekt), nebo sekce v HTW Üablon∞ ohraniΦenß tagy <%WBC%>
a <%/WBC%>
s ·daji, jakΘ p°φkazy mß WBIK s databßzφ provΘst, p°φpadn∞ dßle jakou Üablonu pou₧φt pro vytvo°enφ v²stupnφho HTML dokumentu p°i ·sp∞ÜnΘm pr∙b∞hu vÜech operacφ a jakou Üablonu pou₧φt p°i v²skytu chyby atd.
Ka₧d² konektor musφ stanovit, jak bude sestaven v²sledn² dokument, kter² se odeÜle browseru. NejΦast∞jÜφ mo₧nostφ je urΦit HTW Üablonu, kterß se pou₧ije pro sestavenφ v²slednΘho dokumentu po vykonßnφ p°φkaz∙ obsa₧en²ch v konektoru. Je-li konektor samostatn² objekt, urΦφ se Üablona pomocφ bloku Template
, je-li konektor jako WBC sekce Φßstφ Üablony, pou₧ije se tato Üablona. DalÜφ mo₧nostφ je pou₧φt p°φkaz Location
. Tento p°φkaz zp∙sobφ p°esm∞rovßnφ browseru na jinou strßnku, p°iΦem₧ Internet klient odeÜle browseru pouze pokyn k p°esm∞rovßnφ a cφlovΘ URL. Poslednφ mo₧nostφ je pou₧φt p°φkaz SendFile
. Do browseru se odeÜle zvolen² proud bajt∙ (hodnota typu BLOB) a zp∙sob zobrazenφ zßvisφ pouze na browseru (Internet Explorer m∙₧e spustit p°φsluÜn² ActiveX control apod.).
V textu WBC konektoru m∙₧e b²t na libovolnΘm mφst∞ citace vstupnφ prom∞nnΘ z formulß°e nebo prom∞nnΘ vytvo°enΘ pomocφ p°φkaz∙ GetVariable
Φi DeclareVariable
v konektoru p°ed tφmto mφstem. K tomuto staΦφ napsat na danΘ mφsto jmΘno prom∞nnΘ a bezprost°edn∞ p°ed a bezprost°edn∞ za toto jmΘno napsat znak procenta (%).P°i zpracovßnφ konektoru bude tato citace nahrazena aktußlnφ hodnotou prom∞nnΘ.
Vstupnφ prom∞nnΘ jsou v₧dy typu String, vytvo°enΘ prom∞nnΘ mohou b²t libovolnΘho typu.
Konektor lze v∞tvit pomocφ p°φkaz∙ preprocesoru, kterΘ zaΦφnajφ v prvnφm sloupci znakem #.
Do konektor∙ lze zapisovat komentß°e.
P°φkazy konektoru musφ zaΦφnat ji₧ od prvnφho sloupce, jinak bude p°i zpracovßnφ generovßna chyba Φ. 9.
P°φklad: U₧ivatel v browseru v HTML formulß°i zadß pomocφ editaΦnφch polφ hodnoty intervalu datum∙ a nap°. pomocφ comba k≤d zbo₧φ a provedl SUBMIT. Formulß° do konektoru p°edal t°i vstupnφ formulß°ovΘ prom∞nnΘ (a sadu systΘmov²ch prom∞nn²ch). Tyto prom∞nnΘ (a p°φpadnΘ dalÜφ prom∞nnΘ vytvo°enΘ za b∞hu konektoru) se pou₧ijφ k sestavenφ SQL p°φkaz∙, kterΘ mß konektor vykonat.
Blok SQLStatement
(p°φkaz SELECT
) v konektoru vybere zßznamy vyhovujφcφ zadan²m hodnotßm (dosadφ za jmΘno formulß°ovΘ prom∞nnΘ v procentech jejφ hodnotu - pozor na uvozovky pro °et∞zcov² sloupec kod_zbozi
). V Üablon∞ je pak mo₧nΘ zobrazit odpov∞∩ na tento SELECT
.
<%WBC%>
RequiredValues: datod datdo kod
SQLStatement: polobjC
+ SELECT B2.nazev_zbozi,B2.datum, B2Count, COALESCE(B3Count,0) AS B3Count
+ FROM (SELECT Obj_header.datum,COUNT(Obj_header.id_dobj) AS B2COUNT, Cenik.nazev_zbozi
+ FROM Obj_header, Obj_polozky, Cenik
+ WHERE Obj_polozky.id_cnk=Cenik.id_cenik AND Obj_polozky.id_dobj=Obj_header.id_dobj
+ AND datum>=%datod% AND datum<=%datdo% AND Cenik.kod_zbozi="%kod%"
+ GROUP BY Obj_header.datum) AS B2
+ LEFT OUTER JOIN
+ (SELECT Obj_header.datum,COUNT(Obj_header.id_dobj) AS B3COUNT, Cenik.nazev_zbozi
+ FROM Obj_header, Obj_polozky, Cenik
+ WHERE Obj_polozky.id_cnk=Cenik.id_cenik AND Obj_polozky.id_dobj=Obj_header.id_dobj
+ AND datum>=%datod% AND datum<=%datdo% AND Cenik.kod_zbozi="%kod%"
+ AND Obj_header.potvrzena
+ GROUP BY Obj_header.datum) AS B3
+ ON (B2.datum=B3.datum)
+ ORDER BY B2.datum
<%/WBC%>
V Üablon∞, kterß mß konektor jako zdroj dat, pak lze pracovat
SQLStatement
, v detail sekci Üablony je m∙₧e v cyklu zobrazit;GetVariable
, DeclareVariable
;Bezchybovß citace prom∞nnΘ
Pokud nenφ jistΘ, zda bude Φi nebude urΦitß vstupnφ prom∞nnß p°eΦtena z formulß°e, pou₧ijte tzv. bezchybovou citaci danΘ prom∞nnΘ. Tato bezchybovß citace vstupnφ prom∞nnΘ se od normßlnφ citace liÜφ tφm, ₧e mezi prvnφmi procenty a nßzvem prom∞nnΘ je znak otaznφk (?). Mezi procenty a otaznφkem, resp. otaznφkem a nßzvem prom∞nnΘ m∙₧e b²t libovoln² poΦet mezer a tabulßtor∙. P°i vyhodnocenφ citace se postupuje takto: pokud je danß prom∞nnß p°eΦtena z formulß°e, bude citace nahrazena jejφ hodnotou, pokud prom∞nnß nenφ p°eΦtena z formulß°e, bude citace nahrazena prßzdn²m °et∞zcem a nebude generovßna chyba. BezchybovΘ prom∞nnΘ lze s v²hodou pou₧φt u INPUT
typu CHECKBOX
(pokud toti₧ u₧ivatel ve formulß°i checkbox nezatrhne, CGI skriptu by nebyla p°edßna odpovφdajφcφ prom∞nnß - pokud se ovÜem pou₧ije bezchybovß citace, p°edß se bu∩ hodnota nebo prßzdn² string a podle dΘlky je mo₧nΘ rozliÜit dva stavy - TRUE a FALSE).
HlßÜenφ u₧ivatelsk²ch chyb
Cφlem je umo₧nit v²vojß°i dynamick²ch HTML strßnek reagovat na neΦekan² stav, kter² nastal
Program
nebo RunProgram
)a ukonΦit provßd∞nφ WBC konektoru (neprovßd∞t nßsledujφcφ bloky) a nastavit po₧adovanΘ chybov² stav, na n∞j₧ zareaguje WBIK chybovou Üablonou. Toho v²vojß° dosßhne
Error
v konektoru neboSetUserError
z knihovny WBINET.DLL v bloku Program (resp. v procedu°e volanΘ z tohoto bloku), nebo v procedu°e RunProgram volanΘ pomocφ p°φkazu RunProgram. Tato akce nastavφ chybu Φ. 90 (chyba vyvolanß z programu) a jako chybovΘ hlßÜenφ nastavφ obsah p°edanΘho °et∞zce. Bezprost°edn∞ po bloku Error
nebo po ukonΦenφ bloku Program
(nebo RunProgram
), ve kterΘm byla tato funkce zavolßna, Internet klient ukonΦφ provßd∞nφ WBC konektoru a vygeneruje chybovou HTML strßnku dle nastavenΘ chybovΘ Üablony.
Nßsledujφcφ tabulka ukazuje abecednφ seznam blok∙, kterΘ m∙₧e WBC konektor obsahovat:
Content-type
- zm∞na nastavenφ typu vystupujφcφho dokumentuDeclareVariable
- deklarace prom∞nnΘError
- vyvolßnφ u₧ivatelskΘ chybyErrorTemplate
- volba chybovΘ Üablony GetVariable
- vytvo°enφ prom∞nnΘ podle prom∞nnΘ projektuIgnoreBlanks
- zp∙sob prßce s prßzdn²mi znaky v Üablon∞Location
- p°esm∞rovßnφ browseruMaxRecords
- nastavenφ max. poΦtu p°enßÜen²ch zßznam∙ ze SELECTuProgram
- zavolßnφ procedury vnit°nφho jazykaRequiredValues
- stanovenφ, kterΘ vstupnφ prom∞nnΘ jsou nezbytnΘRunProgram
- odliÜn² zp∙sob generovßnφ v²stupuSendFile
- odeslßnφ binßrnφho souboru z databßze do browseruSet-cookie
- nastavenφ cookiesSetVariable
- zm∞na hodnoty prom∞nnΘSQLStatement
- SQL p°φkazy, kterΘ se majφ vykonatTemplate
- volba Üablony, kterß se mß vygenerovat po skonΦenφ konektoru