Skip Navigation LinksALVAO 7.1ALVAO Asset ManagementVyhledávání údajůDotazy
Skip Navigation Links.
Skip Navigation Links
Skip Navigation Links.
%USERPROFILE%\Documents\ALVAO\Doc\Documentation\doc\cs\ALVAO_7_1\ALVAO_Asset_Management\searching\query.aspx
|
Dotazy 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ě HTML Dokument .
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 vyhledávání , 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
Dotaz=
[PARAMETERS Parametr [, Parametr]...]
SELECT [Dotaz_Typ] [AS [Nadpis=] Dotaz_Id]
[DOWN | UP | DEEP | SHALLOW | NEAREST | ALL]
[Sloupec_Nadpis [, Sloupec_Šířka %]=][Dotaz_Id.] Vlastnost [
Sloupec_Operátory]
[, [Sloupec_Nadpis [, Sloupec_Šířka %]=] [Dotaz_Id.]Vlastnost [
Sloupec_Operátory] ...]
[WHERE
[NOT] Filtr [AND | OR [NOT] Filtr ...]]
[WITH
Dotaz[, Dotaz ...]
[HAVING [NOT] Dotaz_Id [AND | OR [NOT] Dotaz_Id ...]]
ENDWITH]
[GROUP BY
[Dotaz_Id.]Vlastnost]
[ORDER BY
[Dotaz_Id.]Vlastnost [ASC | DESC]
[, [Dotaz_Id.] Vlastnost [ASC | DESC] ...]]
Parametr dotazu je datová hodnota, kterou uživatel zadává v
okamžiku vyhodnocení dotazu.
Parametr= Název_Parametru Typ_Parametru
kde:
Název_Parametru
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
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="Počítač"
WITH
SELECT HISTORY AS S1 "Provedl"=@user,"Popis"=@description
WHERE @date>=[Od data] AND @date<=[Do data]
HAVING s1
ENDWITH
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č".
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="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="Počítač"
WITH
SELECT SWINST AS S1
WHERE @category=SW_OS
HAVING S1
ENDWITH
GROUP BY S1.@product
Nadpis 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="Počítač"
Identifiká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="Počítač"
WITH
SELECT AS S1 WHERE @class="Klávesnice",
SELECT AS S2 WHERE @class="Monitor"
ENDWITH
Modifikátory DOWN, UP, DEEP, SHALLOW, NEAREST, ALL
Modifikátory určují způsob vyhledávání objektů v poddotazech v
sekci WITH.
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ěť RAM
-
zvuková 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="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
Urč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="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.
Specifikuje šíř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="Počítač"
Ná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:
Speciální hodnoty lze použít pouze v dotazech typu HISTORY,
NOTICE nebo SWINST.
Uveďte jeden nebo více operátorů. Jednotlivé operátory se
oddělují pouze mezerou.
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="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.
Filtr 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.
Filtr= Vlastnost Porovnání Konstanta | OWN(Vlastnost) | INHERITED(Vlastnost)
kde:
Porovnání
Funkce OWN() je splněna v případě, že vlastnost je vlastní
vlastností objektu. Funkce INHERITED() je splněna pro zděděné
vlastnosti.
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<64
Konstanta 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<64
Pří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ů.
@type=SW_NOLIC
Příklad 15. Dotazovací jazyk - konstanty
Vyhledání všech nepovolených softwarových produktů -
nelegálně nainstalovaných
@licname=NULL
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"
Mezi 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="Počítač"
WITH
SELECT AS HDD WHERE @class="Pevný disk"
HAVING NOT HDD
ENDWITH
Urč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="Počítač"
GROUP BY Poschodí
Slouží 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="Počítač"
ORDER BY Poschodí, Uživatel
Nenašli jste co jste hledali? Zeptejte se našeho týmu technické podpory.
|