Starší komentáře ke článku: Zpracování databázových dat přes XSLT v ASP

Zpět na článek | Úvodní stránka Interval.cz

Avatar

Autor komentáře: Jirka

Datum vložení: 29.7.2004 19:46:16

Dobrý den,
článek je velmi zajímavý. Zajímavý přístup a práce s daty z DB. Rád bych však požádal na nějakém konktrétnějším příkladě objasnění výhod takového přístupu a práce s daty.

Děkuji

Avatar

Autor komentáře: geneticy

Datum vložení: 29.7.2004 20:40:01

1. Validnější výstupní HTML kod než při iteraci - XML/XSL vám prostě při nevaliditě nic nezobrazí a donutí vás pracovat korektně. Trošku práce při přípravě, ale pak vývoj aplikace sviští. A takový web obstojí i před šťouraly na Intervalu pořád otravující validátor na W3C - prostě nemůže být nevalidní - samotné XML je přísnější než XHTML.
2. Můžete na web ukládat prefabrikovaná data z databáze (např. články apod.) a akci provést jen při změně dat - je to výhoda např. při redakčních systémech, kde není problém s diskovým prostorem ale užším místem je konektivita k databázi při velkém množství přístupů. Nezatěžujete zbytečně www server a databázi, data jsou předžvýkaná v XML na disku - získáte i na rychlosti zpracování webových stránek.
3. Sám jsem používal uložení obsahu recorsetu asynchronně na disk (.save(1)). Ušetřil jsem tak prostředky při spojení s databází - takový XML lze zpět přímo načíst do recordsetu a použít - je to trochu jiná kapitola, než tento článek. Je to jakási primitivní obdoba odpojených datasetů z NET. Pro méně často měněná data jde o vynikající věc (stejně jako téma toho článku). Jedině pro applikace, kde se vyžaduje vysoká interaktivita - např. chaty se to nehodí. Ale většina webů lze takto bez překážek zpracovávat.

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 30.7.2004 15:12:54

1. - XML není přísnější než XHTML - je to naopak, protože XHTML je vlastně implementací XML, tedy jej "zužuje". XML dokumentu stačí být "well-formed", kdežto XHTML by měl být navíc "validní" dle daného DTD (resp. XML schématu).
2., 3. - Souhlasím, nějak tak se s daty pracuje v některých větších projektech.

Avatar

Autor komentáře: geneticy

Datum vložení: 30.7.2004 20:44:21

No, asi to opravdu nebylo šťastné vyjádření o té přísnosti - XHTML je skutečně podmnožinou XML s pevně daným schématem. Měl jsem spíše na mysli výsledek v browserech - nevalidní XHTML zobrazíte, i když je na houby, ale externě zpracované XML ne, pokud není v pořádku XML (DTD/XSD) a XSL, parsery to prostě nespolknou. Myslím, že jde spíše o nedorozumění ve výrazivu.

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 2.8.2004 9:57:57

Tak to teda máte pravdu. Nicméně pokud si nenecháte výsledek ještě extra validovat dle DTD/XSD, nevalidní XHTML vzniknout může - třeba špatné zanoření elementů, zapomenete na nějaké povinné atributy. Ovšem nemůže se samozřejmě stát, že zapomenete uzavřit tag, nebo se budou tagy křížit, a podobně. A už to může velice pomoci :-)

Avatar

Autor komentáře: geneticy

Datum vložení: 29.7.2004 20:49:58

Mě se ten článek samozřejmě líbil, něco podobného jsem párkrát použil. Nicméně, používáte v příkladech ADODB.Stream...prosím, podívejte se na poslední bezpečnostní záplatu od MS pro ADO - mám pocit, že zrovna tohle již v ADO skončilo.

Při troše práce můžete obsah recordsetu samozřejmě uložit i přímo do XML souboru i pro jiné databáze. Stačí obsah recordsetu iterovat a ukládat do paměťové proměnné a pak přes FileSystemObject do souboru. Jde to - jen nezapomenout samozřejmě na všechny náležitosti XML souboru, můžete samozřejmě rovnou vygenerovat i XSL a DTD. Jde to, ale je to pracné, i když se to někdy vyplatí.

Avatar

Autor komentáře: Honza

Datum vložení: 30.7.2004 9:34:59

Zatim pro sve aplikace pouzivat toto:
set data=spojeni.execute(dotaz)
if not data.EOF then: varData=data.GetRows
data.close
set data=nothing
spojeni.close
set spojeni=nothing

Kdyz si tohle provedu, tak uz pravuji pouse s polem varData.
Kdyz potrebuju strankovat, ta mam takovy zdrojak:(on 20 zaznamu a chci 50 zaznamu).
set data=spojeni.execute(dotaz)
rs.move 20
if not data.EOF then: varData=data.GetRows(50)
Chtel jsem se zeptat na prinos popisovate technologie v clanku oproti tomu, co pouzivam.
Data na databazi se velice casto (vlastne porad) meni.
Dekuji Honza

Avatar

Autor komentáře: Petr Bříza

Datum vložení: 30.7.2004 15:07:30

Jde hlavně o pohodlnou práci s daty při jejich zobrazení. Standardem je procházení Recordsetu - ve vašem případě pole - prostě iterovat po jednotlivých položkách, a postupně z nich lepit potřebný výstupní HTML kód. Nicméně právě toto naprogramovat není moc jednoduché, například právě v případě strukturované diskuse, nebo pokud rozebíráme data získané spojením tabulek (JOIN). Právě k tomuto účelu slouží XSLT - k transformaci dat z jedné podoby do jiné (zde XML -> XHTML). Při použití XSLT například hrozí mnohem menší riziko zavlečení chyb, už z principu tohoto jazyka. Stylesheet se píše mnohem snadněji, rychleji, a obsahuje mnoho mocných a užitečných funkcionalit. Nutno podotknout že mnoho jich také chybí, ale případné nedostatky lze vždy vyřešit - doprogramovat, což byste dělal tak jako tak :)
Vyzkoušejte a uvidíte ;)

Avatar

Autor komentáře: Pavel

Datum vložení: 4.5.2005 17:01:14

Pisi uz asi se zpozdenim, ale zkousel jsem ukaz. priklad a stale mi to hlasi chybu na radku: cmd.Execute , , 1024 Nevite nekdo co s tim ? Diky ! Pavel

Zpět na článek | Úvodní stránka Interval.cz