| DotazyDotazy slouží k pokročilému vyhledávání údajů ve stromu a v evidenci 
	instalací a k vytváření tabulkových tiskových sestav. Dotazy se zapisují textově v jazyce, který je podobný dotazovacímu jazyku 
	SQL. Oproti SQL však obsahuje nástroje pro vyhledávání ve stromové struktuře 
	objektů. Práci s dotazy si ukážeme na příkladu dotazu pro vyhledání všech počítačů 
	ve stromu. 
		V hlavní nabídce vyberte příkaz Dotaz - Nový.Na obrazovce se otevře okno 
		Průvodce vytvořením dotazu - krok 1 , ve kterém máme vybrat řídící 
		objekt dotazu. V našem jednoduchém příkladu je řídícím objektem zkrátka 
		objekt, který hledáme, tj. počítač. Rozbalte tedy objekt počítačové 
		sestavy a vyberte v něm objekt počítač. Potom pokračujte tlačítkem
	          Další.Tím se dostaneme na druhou stranu průvodce, tj. do okna 
		Průvodce vytvořením dotazu - krok 2 . Zde vybereme údaje, které se 
		zobrazí ve výsledku dotazu o každém nalezeném objektu. V seznamu vpravo 
		vyberte např. vlastnosti Název počítače a Datum nákupu.Tlačítkem Další se otevře strana 
		Průvodce vytvořením dotazu - krok 3. Zde můžeme změnit nadpisy a 
		šířky sloupců ve výstupní sestavě a přidat podmínky pro vyhledávání. V 
		našem případě nemusíme nic měnit a rovnou pokračovat tlačítkem 
		Další.Na straně 
		Průvodce vytvořením dotazu - krok 4 můžete upravit řazení a 
		seskupování položek ve výsledku dotazu. Opět můžeme přejít dál tlačítkem 
		Další.Na straně 
		Průvodce vytvořením dotazu - krok 5 zadejte nadpis tiskové sestavy a 
		stiskněte tlačítko 
			Náhled.Na obrazovce se otevře okno 
		Parametry dotazu , ve kterém ještě můžete omezit rozsah stromu pro 
		hledání.Potom stiskněte tlačítko OK a na obrazovce 
		se otevře tisková sestava s výsledkem dotazu v okně 
		Tisková sestava.Zavřete okno s tiskovou sestavou. Tím se vrátíme do průvodce, kde 
		stiskněte tlačítko Dokončit.Na obrazovce se otevře okno 
		Vyhledávání - Dotaz, kde je vidět textový zápis dotazu, který jsme 
		právě vytvořili. Tlačítkem Uložit ho můžete 
		uložit do souboru, odkud je možné jej později načíst tlačítkem 
		Načíst.Stiskněte tlačítko Vyhodnotit.Znovu se otevře okno 
		Parametry dotazu jako při zobrazení náhledu. Po jeho potvrzení se 
		dotaz vyhodnotí a výsledek se zobrazí v okně 
		Výsledky dotazu, ve kterém můžete tlačítkem 
		Tisková sestava
	        zobrazit tiskovou sestavu, nebo tlačítkem Export 
		výsledek uložit do textového souboru, který lze dále zpracovat např. v 
		programu Microsoft Excel. Syntaxe dotazovacího jazyka
			
				
					| Symbol | Význam |  
					| | | nebo |  
					| [ ] | nepovinné |  
					| ... | opakování |  ParametrParametr dotazu je datová hodnota, kterou uživatel zadává v 
			okamžiku vyhodnocení dotazu. 
Parametr= Název_Parametru Typ_Parametru 
kde: Identifikuje parametr. Jednotlivé názvy parametrů musí být jedinečné 
		a nesmí se shodovat s identifikátory sloupců. Pokud je název parametru 
		složen z více slov, je nutné jej zapsat do hranatých závorek. 
			
				
					| Typ_Parametru | typ |  
					| T_TEXT | text |  
					| T_DOUBLE | reálné číslo |  
					| T_DATETIME | datum, čas |  Příklad 1. Dotazovací jazyk - parametr Chceme vypsat zásahy do počítačů v zadaném časovém intervalu. Program 
		se před vyhodnocením dotazu zeptá na hodnoty parametrů Od data 
		a Do data. PARAMETERS [Od data] T_DATETIME, [Do data] T_DATETIME
SELECT AS "Přehled zásahů"=S "Sestava"=@object
WHERE @class LIKE "Počítač*"
WITH
    SELECT HISTORY AS S1 "Provedl"=@user,"Popis"=@description
    WHERE @date>=[Od data] AND @date<=[Do data]
HAVING s1
ENDWITH
Dotaz_Typ
				
					
						| Dotaz_Typ | Popis |  
						| HISTORY | dotaz na položky historie objektu |  
						| NOTICE | dotaz na poznámky objektu |  
						| SWINST | dotaz na nainstalované softwarové produkty |  Dotaz typu HISTORY, NOTICE nebo SWINST může být použit pouze jako 
			poddotaz a nesmí obsahovat další poddotazy. Navíc dotaz typu SWINST 
			má význam pouze pokud je poddotazem dotazu, který vrací objekty 
			druhu "počítač". 
   	
   	Poznámka: Dotaz typu HISTORY a NOTICE nepracuje s 
	odstraněnými (skrytými) záznamy deníku. Příklad 2. Dotazovací jazyk - typ dotazu Chceme vypsat všechny poznámky objektů počítač seřazené 
			chronologicky. SELECT AS "Poznámky objektů"=S0 WHERE @class LIKE "Počítač*" 
WITH
    SELECT NOTICE AS S1 @date, @user, @description
ENDWITH
ORDER BY S1.@date 
Příklad 3. Dotazovací jazyk - typ dotazu Chceme vypsat přehled všech počítačů a nainstalovaných operačních 
			systémů. Dále požadujete, aby výsledek byl seskupen podle 
			nainstalovaných operačních systémů. SELECT AS "Přehled nainstalovaných operačních systémů"=S
 "OS"=S1.@product, "Počítač"=@object, "Inventární číslo"=[inventární číslo],
 "Uživatel"=[uživatel]
WHERE @class LIKE "Počítač*"
WITH
    SELECT SWINST AS S1 
    WHERE @category=SW_OS
    HAVING S1
ENDWITH
GROUP BY S1.@product 
NadpisNadpis výstupní sestavy. Příklad 4. Dotazovací jazyk - nadpis Chceme vypsat všechny počítače. V hlavičce sestavy bude text 
			"Počítače". SELECT AS "Počítače"=S0 @object
WHERE @class LIKE "Počítač*"
Dotaz_IdIdentifikátor dotazu nebo poddotazu v sekci WITH. Pokud se ve 
			dvou poddotazech vyskytují vlastnosti se stejným názvem, můžete k 
			jejich rozlišení použít zápis 
			Dotaz_Id.Vlastnost, např. "S0.Kapacita". V případě, že 
			je identifikátor dotazu složen z více slov, zapište ho do hranatých 
			závorek. Příklad 5. Dotazovací jazyk - identifikátor dotazu Chceme vypsat všechny počítače a zajímají vás pouze údaje: Název 
			počítače, Klávesnice, Monitor. Vlastnosti Název z objektů monitor a 
			klávesnice je třeba rozlišit identifikátorem poddotazu. SELECT AS S0 S0.@object, S1.Název, S2.Název
WHERE @class LIKE "Počítač*"
WITH
    SELECT AS S1 WHERE @class="Klávesnice",
    SELECT AS S2 WHERE @class="Monitor"
ENDWITH 
Modifikátory DOWN, UP, DEEP, SHALLOW, NEAREST, 
		ALLModifikátory určují způsob vyhledávání objektů v poddotazech v 
			sekci WITH. 
				
					
						| Modifikátor | Popis |  
						| DOWN | prohledávání směrem dolů, tj. prohledávání podstromu 
						řídícího objektu (implicitní hodnota) |  
						| UP | prohledávání směrem nahoru, tj. prohledávají se 
						všechny objekty na cestě ke kořeni stromu |  
						| DEEP | hledat ve všech potomcích řídícího objektu 
						(implicitní hodnota) |  
						| SHALLOW | hledat pouze v přímých potomcích řídícího objektu 
						(ne v potomcích potomků) |  
						| NEAREST | při nalezení nejbližšího objektu ukončit 
						prohledávání do hloubky (implicitní hodnota) |  
						| ALL | prohledat celý podstrom řídícího objektu |  Modifikátory NEAREST a ALL smysl pouze v kombinaci s 
			modifikátorem DEEP, který zajistí prohledávání do hloubky. Příklad 6. Dotazovací jazyk - modifikátory Chceme vypsat počítačové sestavy a zajímají vás pouze údaje: 
			Název sestavy, paměť RAM, HDD. Dalším omezením je, že nás zajímá 
			pouze paměť RAM umístěná na základní desce. Jako řídící objekt 
			určíte objekt počítač PC. 
				Sestava 2
				
					PC
					
						paměť RAMzvuková karta
						
						HDD Z příkladu dvou počítačových sestav je patrné, že v počítači 2 je 
			ve zvukové kartě umístěna paměť. Abychom zabránili výpisu této 
			paměti, je v dotazu S2 použit modifikátor SHALOW, který zajistí 
			prohledávání pouze na úrovni objektu PC. Modifikátor UP použitý v dotazu S1 zajistí nalezení objektu 
			Sestava, který se nachází nad objektem PC (počítač). SELECT AS S0 S1.@object, S2.@object, S3.@object
WHERE @class LIKE "Počítač*"
WITH
    SELECT AS S1 UP WHERE @class="Sestava",
    SELECT AS S2 DOWN SHALLOW WHERE @class="paměť RAM",
    SELECT AS S3 DOWN WHERE @class="Pevný disk"
ENDWITH
Sloupec_NadpisUrčuje nadpis sloupce ve výstupní sestavě. Příklad 7. Dotazovací jazyk - nadpis sloupce Chceme vypsat počítače a zajímají vás údaje: Počítač, Pevný disk, 
			Paměť RAM, Procesor. Sloupce ve výstupní sestavě budou mít nadpisy: 
			Počítač, HDD, RAM, CPU. SELECT AS S0 "Počítač"=S0.@object, "HDD"=S1.@object,
 "RAM"=S2.@object, "CPU"=S3.@object
WHERE @class LIKE "Počítač*"
WITH
    SELECT AS S1 WHERE @class="Pevný disk",
    SELECT AS S2 WHERE @class="Paměť RAM",
    SELECT AS S3 WHERE @class="Procesor"
ENDWITH
Pokud byste nespecifikovali žádné nadpisy sloupců, sloupce by 
			byly nadepsány: S1.Název, S2.Název, S3.Název. Sloupec_ŠířkaSpecifikuje šířku sloupce ve výstupní sestavě. Šířka se zadává v 
			procentech vzhledem k šířce celé sestavy. Příklad 8. Dotazovací jazyk - šířka sloupce Chceme vypsat počítače a zajímají vás údaje: Název sestavy, 
			Uživatel, Poschodí. Dále vyžadujeme, aby sloupec Název sestavy měl název Počítač a 
			šířku 40% z šířky tiskové strany a sloupec Poschodí 20% z šířky 
			strany. SELECT "Počítač",40%=@object, Uživatel, 20%=Poschodí
WHERE @class LIKE "Počítač*"VlastnostNázev vlastnosti. Pořadí sloupců v dotazu odpovídá jejich pořadí 
			ve výstupní sestavě. Pokud je název vlastnosti složen z více slov, 
			je nutné jej zapsat do hranatých závorek. Jako Vlastnost můžete 
			použít také tyto speciální hodnoty: 
				
					
						| Vlastnost | Popis |  
						| @authorized | instalace software na počítači je potvrzena nebo je 
						počítači přidělena licence |  
						| @category | kategorie softwarového produktu (např. operační 
						systém) |  
						| @cdkey | CD klíč softwarového produktu |  
						| @class | druh objektu |  
						| @date | datum záznamu historie, poznámky objektu nebo 
						instalace sw produktu |  
						| @description | 
							
								
									| Typ dotazu (Dotaz_Typ) | Význam vlastnosti @description |  
									| HISTORY | popis záznamu historie |  
									| NOTICE | text poznámky |  
									| SWINST | poznámka u záznamu historie instalací |  |  
						| @detproductname | detekovaný název softwarového produktu např. název 
						operačního systému včetně verze service packu |  
						| @detproductver | detekovaná verze softwarového produktu (detailní 
						hodnota verze produktu např. 5.23) |  
						| @detlastdate | datum poslední softwarové detekce počítače |  
						| @flags | typy záznamu historie objektu (Pro dotazování na 
						typy záznamů historie objektů použijte speciální 
						konstanty viz 
						Konstanta.) |  
						| @invnumber | inventární číslo přidělené licence |  
						| @invoice | označení dokumentu o nákupu přidělené licence (viz Přehled licencí a instalací, sloupec dokument) |  
						| @language | jazyková verze softwarového produktu |  
						| @licname | přesný název licence softwarového produktu |  
						| @nodeid | jedinečný identifikátor (číslo) objektu ve stromu. 
						Vhodné např. pro řazení - zjištění posledních nových 
						objektů v evidenci. |  
						| @notice | poznámky objektu |  
						| @object | název objektu |  
						| @objectpath | cesta k objektu ve stromu |  
						| @producer | výrobce softwarového produktu |  
						| @product | název softwarového produktu |  
						| @property | libovolná vlastnost objektu |  
						| @serialnumber | sériové číslo softwarové licence |  
						| @subject | titulek poznámky |  
						| @swfrompack | software je ze softwarového balíku |  
						| @type | typ softwarového produktu (např. vyžadující licenci, 
						trial, ...) |  
						| @user | autor poznámky, záznamu historie objektu nebo 
						instalace sw produktu |  Speciální hodnoty lze použít pouze v dotazech typu HISTORY, 
			NOTICE nebo SWINST. Sloupec_OperátoryUveďte jeden nebo více operátorů. Jednotlivé operátory se 
			oddělují pouze mezerou. 
				
					
						| Operátor | Popis |  
						| SUM | součet hodnot |  
						| COUNT | počet položek |  
						| AVG | průměrná hodnota |  
						| MIN | minimální hodnota |  
						| MAX | maximální hodnota |  Příklad 9. Dotazovací jazyk - operátory sloupce Zjištění průměrné kapacity paměti v počítačů. SELECT @object, S1.Velikost AVG
WHERE @class LIKE "Počítač*"
WITH
    SELECT AS S1 WHERE @class="Paměť RAM"
ENDWITH
Na konci tiskové sestavy bude ve sloupci Velikost uveden průměr všech 
		hodnot. FiltrFiltr je logický výraz určující podmínku. Podmínka se vyhodnocuje 
			pro každý objekt. Objekt je vybrán do výsledku dotazu v případě, že 
			je pro něho podmínka splněna. kde: 
				
					
						| Porovnání | Popis |  
						| = | rovnost |  
						| like | výskyt podřetězce |  
						| <> | nerovnost |  
						| < | menší |  
						| > | větší |  
						| <= | menší nebo rovno |  
						| >= | větší nebo rovno |  Funkce OWN() je splněna v případě, že vlastnost je vlastní 
			vlastností objektu. Funkce INHERITED() je splněna pro zděděné 
			vlastnosti. INHERITED([Uživatel]) AND [Uživatel]="Veronika Vlídná"Příklad 10. Dotazovací jazyk - filtr Pro vyhledání všech tiskáren značky HP použijeme filtr omezující 
			seznam tiskáren na tiskárny, jejichž název začíná dvojicí znaků 
			"HP". @class="Tiskárna" AND Název LIKE "HP*"Příklad 11. Dotazovací jazyk - filtr Vyhledání všechny pamětí RAM menších než 64 MB. @class="paměť RAM" AND Velikost<64KonstantaKonstanta může být reálné číslo nebo textový řetězec. V textovém 
			řetězci lze použít hvězdičkovou notaci ‘*‘ pro určení libovolného 
			počtu znaků. Tabulka 1. Konstanty - typy záznamů historie 
				
					
						| Konstanta | Popis |  
						| H_MOVEDEST | sem přesunut objekt "x" |  
						| H_MOVESRC | odtud přesunut objekt "x" |  
						| H_TO | objekt přesunut do "x" |  
						| H_INSERTNEW | sem vložen nový objekt "x" |  
						| H_TONEW | objekt vytvořen v "x" |  
						| H_SCANMMOVEDEST | sem přesunut objekt "x" - scannerem |  
						| H_SCANMOVESRC | odtud přesunut objekt "x" - scannerem |  
						| H_SCANTO | objekt přesunut do "x" - scannerem |  
						| H_SCANINSERTNEW | sem vložen nový objekt "x" - scannerem |  
						| H_SCANTONEW | objekt vytvořen v "x" - scannerem |  Tabulka 2. Konstanty - typy softwarových produktů 
				
					
						| Konstanta | Popis |  
						| SW_NEEDSLIC | komerční - uživatel musí zakoupit licenci k 
						používání produktu |  
						| SW_NOLIC | freeware (nevyžaduje licenci) - produkt je možné 
						používat bez licence |  
						
						| SW_TRIALLIC | shareware/trial - produkt je možné vyzkoušet bez 
						licence |  
						| NULL | nepovolený - nelegálně nainstalovaný |  Tabulka 3. Konstanty - kategorie softwarových produktů 
				
					
						| Konstanta | Popis |  
						| SW_OS | softwarový produkt je operační systém |  Příklad 12. Dotazovací jazyk - konstanty Vyhledání všech pamětí RAM menších než 64 MB. @class=”paměť RAM” AND Velikost<64Příklad 13. Dotazovací jazyk - konstanty Vyhledání záznamů historie odstraněných (přesunutých) objektů po 
			1.1.2001. @date>"1.1.2001" AND ( @flag=H_MOVESRC OR @flags=H_SCANMOVESRC )Příklad 14. Dotazovací jazyk - konstanty Vyhledání všech freewarových softwarových produktů. Příklad 15. Dotazovací jazyk - konstanty Vyhledání všech nepovolených softwarových produktů - nelegálně 
			nainstalovaných Příklad 16. Dotazovací jazyk - konstanty Vyhledání všech operačních systému nainstalovaných po 1.1.2001. @category=SW_OS AND @date>"1.1.2001"WITH ... ENDWITHMezi klíčová slova WITH a ENDWITH se zapisuje seznam poddotazů. 
			Jednotlivé poddotazy se oddělují čárkami. Klauzule HAVING určuje, které poddotazy v seznamu musí obsahovat 
			alespoň jeden objekt proto, aby byl řídící objekt vybrán. Příklad 17. Dotazovací jazyk - poddotazy Chceme vypsat počítače, které nemají pevný disk. SELECT AS "Počítače bez HDD"=S0 S0.@object
WHERE @class LIKE "Počítač*"
WITH
    SELECT AS HDD WHERE @class="Pevný disk"
    HAVING NOT HDD
ENDWITH
GROUP BYUrčuje sloupec, podle kterého se budou nalezené položky seskupovat. 
		Sloupec musí být uveden v seznamu sloupců za klíčovým slovem SELECT. Příklad 18. Dotazovací jazyk - GROUP BY Chceme vypsat počítače a seskupit je podle Poschodí. SELECT AS "Počítače seskupené podle poschodí"=S0 @object, Poschodí
WHERE @class LIKE "Počítač*"
GROUP BY Poschodí
ORDER BYSlouží k řazení hodnot sloupců ve výstupní sestavě. Priorita 
			řazení je dána pořadím sloupců za klíčovým slovem ORDER BY. Všechny 
			sloupce, podle kterých se bude řadit, musí být uvedeny v seznamu 
			sloupců za klíčovým slovem SELECT. Modifikátory ASC a DESC určují směr řazení:  
				ASC - vzestupněDESC - sestupně Příklad 19. Dotazovací jazyk - ORDER BY Seznam počítačů seřazený podle sloupců Poschodí, Uživatel. SELECT AS "Počítače seřazené podle poschodí a uživatele"=S0
 S0.@object, Uživatel, Poschodí
WHERE @class LIKE "Počítač*"
ORDER BY Poschodí, Uživatel
  
                        Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.
                     |