Jak na MS SQL – zajímavé možnosti XML
Vestavěná podpora XML v MS SQL umožňuje formátovat výstup výsledků dotazů přímo do XML. Pokud používáte IIS, můžete výslednou tabulku zobrazovat přímo v Internet Exploreru ve formě XML s pomocí vestavěných nebo vlastních stylů zobrazení. Pojďme se podívat, jak na to.
XML a MS SQL
V rámci vlastního rozšíření (dialektu) jazyka Transact-SQL disponuje MS SQL zabudovanou podporou formátu XML, standardu pro výměnu dat. S touto vymožeností není MS SQL jediný. I jiné komerční servery nabízejí knihovny „XML Developer Kit“. Bližší informace o XML a o práci s ním se dočtete v seriálu Slabikář XML.
Výstup tabulek – HTML nebo XML?
Jistě znáte někdy až nepřehledný kód se spoustou elementů HTML tabulek, v případě ASP stránek plný „response.write“ nebo PHP skriptů prošpikovaný příkazy „echo“, pro výpis jednotlivých položek aktuálního řádku tabulky vybrané příkazem SELECT do HTML stránky. V porovnání s XML je to celkem nepřehledné a navíc redundantní – formátovací elementy se pro každý nový řádek dokola opakují. Je to tím, že syntaxe HTML určuje především formu a způsob zobrazení v prohlížeči. Druhou možností je výstup příkazu SELECT ve formátu XML a použití parseru. V tomto případě zase způsob zobrazení definujete pomocí stylu. Pro detaily práce s XML se odvolávám na články, které na Intervalu na toto téma vyšly, a dále se zabývám pouze MS SQL serverem.
Klasický SELECT a SELECT FOR XML
Spusťte nástroj SQL Query Analyzer, jenž jsem popsal ve článku Jak na MS SQL – první dotazy. Přepněte na nějakou svou databázi a napište nějaký jednodušší SELECT, který vrací tabulku s alespoň jedním řádkem.
klasický SELECT
Na této odpovědi není zatím nic zvláštního. Teď doplňte na konec SELECTu klauzuli „FOR XML“:
|
Vrátí se výsledek, tabulka ve formátu XML. Je to jeden dlouhý řetězec.
SELECT do XML
Nyní již stačí použít obslužný program, který data přečte a zpracuje – například vloží ve formě HTML do právě generované stránky.
Konfigurace Internet Information Serveru
Pokud používáte IIS 5 a vyšší, dává MS SQL možnost konfigurovat virtuální adresář, který po zadání SQL dotazu SELECT FOR XML vrací přímo správně sestavený XML dokument. K nastavení slouží utilita „IIS Virtual Directory Management for SQL Server“. Pro její spuštění zvolte START | Programy | Microsoft SQL Server | Configure SQL XML Support in IIS:
IIS Virtual Directory Management for SQL Server
Ve stromu konzole označte webový server, pro který budete podporu XML aktivovat. Nyní vytvořte nový virtuální adresář – v menu Akce | Nový | Virtual Directory. V první záložce dialogu nazvané „General“ se zadává nové jméno virtuálního adresáře a odpovídající fyzická cesta. „Security“ zase řeší způsob přihlašování. V „Data Source“ volíte instanci SQL serveru, na kterou budou dotazy směřovány, a také název pracovní databáze, nad kterou budou dotazy vykonávány. Záložka „Settings“ nastavuje, jakými způsoby se bude předávat SQL dotaz ke zpracování.
Dialog nového virtuálního adresáře, záložka Settings
Způsoby přístupu přes virtuální adresář
Allow URL queries – povoleno zadávání SQL dotazů rovnou do URL jako proměnné předávané metodou GET.
Allow template queries – uživatelé mohou spouštět dotazy uložené v šablonách.
Allow XPath – dotazy pracující s SQL pohledy.
Allow POST – povolení a nastavení maximální velikosti dat v dotazu předávaném ke zpracování metodou POST.
Dotazy přes URL
V následujícím příkladu předpokládám, že URL virtuálního adresáře, který jste si nastavili, je „http://localhost/xml“. Otevřete Internet Explorer a zadejte:
|
V URL se používají dva parametry: sql
je text SQL dotazu typu SELECT FOR XML a root
je název kořenového elementu generovaného XML dokumentu.
V okně prohlížeče se objeví výsledek SQL dotazu ve formě XML dokumentu s barevným rozlišením syntaxe:
XML v Internet Exploreru
Tento způsob komunikace s SQL serverem je na ladění na lokálním počítači určitě vhodný, ale naopak by byl bezpečnostní dírou při použití na webu. Proto, pokud pro nějaký virtuální adresář nastavíte „Allow URL queries“, nepovolujte k němu přístup z Internetu.
Dotazy prostřednictvím šablony
Ve fyzické složce odpovídající virtuálnímu adresáři „http://localhost/xml“ vytvořte soubor XML šablony. Tento soubor bude obsahovat příkaz SQL:
|
Pokud v prohlížeči otevřete URL tohoto souboru, vypíše se výsledek dotazu stejně, jako v předchozím případě, kdy bylo SQL přímo součástí URL. V tomto případě je to ale bezpečnější, protože nelze SQL dotaz libovolně měnit.
Šablona popisující formát výstupu
S použitím šablony XSL lze určit HTML formát výstupu dat z XML. Šablona se tvoří jednoduše (název SQL tabulky a jednotlivých jejích sloupců jsou tučně):
|
V šabloně s SQL dotazem ještě musíte určit, že se pro výstup výsledku má použít šablona XSL (vyznačeno tučně):
|
Výstup se zformátuje do HTML bez použití ASP, jak jsem o tom psal v úvodu článku. Šablony SQL dotazů umožňují používat i parametry, které mohou být propojeny přímo na prvky HTML formulářů a tak umožnit návštěvníkovi stránky zpřesnění dotazu.
Starší komentáře ke článku
Pokud máte zájem o starší komentáře k tomuto článku, naleznete je zde.
Mohlo by vás také zajímat
-
Optimalizace a zlepšení výkonu kódu: tipy a triky
14. srpna 2023 -
ZONER Webmail jako první v Česku přináší BIMI s VMC
11. července 2024
Nejnovější
-
Jak rozšířit úložiště Macu za pětinovou cenu?
16. prosince 2024 -
Nové trendy v doménách pro osobní projekty – DIY, LIVING a LIFESTYLE
9. prosince 2024 -
Jak chránit webové stránky před Web/AI Scrapingem
27. listopadu 2024 -
Jaký monitor je nejlepší k novému Macu Mini?
25. listopadu 2024