|
![]() | Přenosy dat z relačně propojených tabulek | ![]() | Formát XML a jeho podpora | Podmíněný výstup údajů do XML | ![]() |
Navržený DAD se často používá opakovaně pro export různých množin záznamů ze stejným způsobem propojených databázových tabulek. Níže popíšeme metody, jak zadat výběr záznamů, které vystoupí do XML souboru, aniž by bylo nutno měnit návrh DAD, tedy pouhou změnou proměnné (klientské či serverové).
Způsob výběru množiny záznamů závisí na druhu DAD.
V syntetických i analytických DAD lze odkazovat na proměnné, které existují mimo DAD a jejichž momentální hodnoty v okamžiku exportu se využijí při výběru záznamů pro export. Tyto proměnné lze použít například v dotazu obsaženém v syntetickém DAD nebo v podmínkách obsažených v elementech, v nichž se připojují tabulky.
Upozonění:Proměnné klienta či serveru lze použít v DADu ještě v jiném významu: lze je svázat s XML atributem nebo textem a použít je pro přenos oběma směry.
Je-li export volán z klienta, v DAD lze odkazovat na proměnné klienta (host variables). Jsou to proměnné existující v klientském programu, který provádí export. Při volání z externího jazyka se popis těchto proměnných předá funkci pro export do XML.
V DAD se před jménem každé proměnné klienta musí uvést dvojtečka.
Při použití proměnných klienta v DAD se obecně postupuje takto:
Při práci z Delphi (CDK komponenta TSQL602XML) nebo z PHP je uvedený postup výrazně jednodušší.
Je-li export volán na serveru z uložené procedury, v DAD lze odkazovat na proměnné deklarované v této uložené proceduře a na její parametry. Popis těchto proměnných není třeba nijak explicitně předávat.
V DAD se tyto proměnné označují prostě svým identifikátorem (bez dvojtečky).
Při použití proměnných v DAD postupujte takto:
Upozornění: Správně navržený DAD obsahující proměnnou serveru nepůjde modifikovat interaktivním návrhářem (resp. bude se hlásit chyba). DAD je třeba navrhnout s proměnnou uvozenou dvojtečkou (pak půjde přeložit a je možné jej testovat) a poté v textovém editoru dvojtečku umazat (a zkoušet již jen pomocí API z procedury).
Syntetický DAD obsahuje SQL dotaz, který vybere záznamy. Součástí dotazu mohou být podmínky, které na základě hodnot ve sloupcích filtrují z databázových tabulek potřebné záznamy.
Uvažujme jako příklad DAD obsahující dotaz:
SELECT * FROM T1, T2 WHERE T1.a=T2.b
V syntetickém DAD se proměnné zadají přímo do dotazu, obvykle do klauzule WHERE. Výše uvedený dotaz lze upřesnit pomocí klientských proměnných param_val a name_val takto:
SELECT * FROM T1, T2 WHERE T1.a=T2.b AND T1.param<:param_val AND T2.name=:name_valVýběr záznamů pak bude záviset na hodnotách v obou proměnných.
V příkladech XML je DAD jménem Select synth demonstrující tuto techniku. K jeho použití je třeba předem zadat hodnotu proměnné klienta param_id (viz poslední odstavec).
Syntetický DAD může exportovat data také z jiného dotazu, než který je v něm uveden. Postupujte takto:
Například můžete otevřít dotaz:
SELECT * FROM T1, T2 WHERE T1.a=T2.b AND T2.name='xyz'a předat jej funkci pro export.
V DADu, který obsahuje postupně připojované tabulky, se výběr záznamů řídí podmínkami zadanými v popisech těch elementů, v nichž se připojuje tabulka.
Například v uzlu připojujícím tabulku T1 může být podmínka param<:param_val a v uzlu připojujícím tabulku T2 podmínka name=:name_val. Pole hostvars bude mít dva prvky pro proměnné jménem param_val a name_val. Pokud před exportem do XML přiřadíte hodnoty těmto proměnným, exportují se pouze záznamy splňující zadané podmínky.
Podmínky uváděné v návrhu DAD mohou mít libovolný tvar použitelný v dotazech v SQL. Každá podmínka může obsahovat libovolný počet klientských proměnných a odkazovat na libovolné sloupce všech tabulek použitých v DAD.
V příkladech XML je DAD jménem Select analyth demonstrující tuto techniku. K jeho použití je třeba předem zadat hodnotu proměnné klienta param_id (pro zkoušení z klientského prostředí návrháře - viz následující odstavec).
Klientské proměnné se definují v externích aplikacích pracujících s programovým rozhraním 602SQL. Aby bylo možno navrhovat a testovat DAD využívající klientské proměnné, návrhář DAD dovoluje dočasně popsat jména, typy a hodnoty proměnných - podrobnosti na straně Interaktivní návrhář DAD dole.
Klientské proměnné popsané v DAD se využijí pouze při práci v interaktivním návrháři. Při použití DAD z externího rozhraní se ignorují.
![]() | Přenosy dat z relačně propojených tabulek | ![]() | Formát XML a jeho podpora | Podmíněný výstup údajů do XML | ![]() |