 |
|
 |
 |
 |
 |
 |
 |
 |
 |
 | 5 - Weitere DyQL-Beispiele |
|
|
db-Interface Seite 5
|
Sofern nicht besonders darauf hingewiesen wird, sind alle nachfolgenden Beispiele für Oracle-Datenbanken geeignet:
|
Beispiel 1
|
/* Diese SQL-Anweisung zeigt den Füllstand jedes Tablespace in der Datenbank an. */
var format='999,999,999,999'; var format2='990.00'; set title=TABLESPACE USAGE; -- (DBA_DATA_FILES, DBA_FREE_SPACE) select tablespace_name as "Tablespace", bytes as "Size", nvl(bytes-free,bytes) as "Used", nvl(free,0) as "Free", to_char(nvl(100*(bytes-free)/bytes,100), {format2}) as "% Used" from ( select ddf.tablespace_name, sum(dfs.bytes) as free, ddf.bytes as bytes from (select tablespace_name, sum(bytes) as bytes from dba_data_files group by tablespace_name) as ddf, dba_free_space as dfs where ddf.tablespace_name = dfs.tablespace_name (+) group by ddf.tablespace_name, ddf.bytes ) order by 5 desc;
/* "set title" übergibt einen String an den zugehörigen Ausgabe-Reiter als Überschrift. Die Angaben hinter doppelten Bindestrichen "--" bis zum Zeilenende werden als Kommentar interpretiert. */
|
Beispiel 2
|
/* Dieses Beispiel übernimmt aus einer ComboBox-Auswahl eine Variable "Gruppe" und übergibt diese an die beiden folgenden SQL-Anweisungen. */
var gruppe=combo 'Gruppe',,select GRUPPE as ID, GRUPPE as Entry from FORMULARE where GRUPPE is not null group by GRUPPE;
select * from FORMULARE where GRUPPE = '{gruppe}' and DATUM > {d '{date-10}'} order by ID desc;
select HTMLDATEI, count(HTMLDATEI) as Anzahl from FORMULARE where GRUPPE = '{gruppe}' group by HTMLDATEI;
|
Beispiel 3 kombiniert mit XML
|
/* Hier ein komplexes Beispiel für den MS-SQL-Server */
set connection=MSDASQL,Empirum; var felder={art} as Bezeichnung, a.name as "WKS-Name", null as "Vorname/Abt", null as "Name/Organisation", a.Domain, {adresse} as Adresse, a.Custom01+'/'+a.Custom02 as Gebäude, a.Custom03 as Raum, {model} as Model, null as SerienNr, null as InventarNr, {OS} as OsVersion, i.LastModTime; var ip1=left(i.IPAddress,4)='172.'; var ip2=left(i.IPAddress,4)='150.';
set title=Workstation; select {felder} from Clients a left join InvComputer i on a.client_id=i.client_id where {art} = 'Workstation' --and {ip1} --and {OS} like 'WinX%' --and i.LastModTime > {d '2008-01-01'} order by 2;
set title=Server; select {felder} from Clients a left join InvComputer i on a.client_id=i.client_id where {art} = 'Server' --and {ip2} --and {OS} like 'WinX%' --and i.LastModTime > {d '2008-01-01'} order by 2; -- --select * from Clients order by name --select * from InvComputer order by computername
/* Variablen können auch als xml-Variante im DyQL definiert werden */ <extends> <art> case when left(a.name,3)='SRV' or left(a.name,4)='SERV' or left(a.name,3)='VS-' or left(a.name,3)='RS-' then 'Server' else 'Workstation' end </art>
<adresse> case when a.Custom01 ='NET1' then 'Interweg 2, 10000 Berlin' when a.Custom01 ='NET2' then 'Interweg 4, 10000 Berlin' else null end </adresse>
<model> ( select case when name='Intel(R) Pentium(R) 4 CPU 1.60GHz' then 'P4 1.6 GHz' when name='Intel(R) Pentium(R) 4 CPU 1.70GHz' then 'P4 1.7 GHz' when name='Intel(R) Pentium(R) 4 CPU 1.80GHz' then 'P4 1.8 GHz' when name='Intel(R) Pentium(R) 4 CPU 1.90GHz' then 'P4 1.9 GHz' when name='Intel(R) Pentium(R) 4 CPU 2.00GHz' then 'P4 2.0 GHz' when name='Intel(R) Pentium(R) 4 CPU 2.40GHz' then 'P4 2.4 GHz' when name='Intel(R) Pentium(R) 4 CPU 2.60GHz' then 'P4 2.6 GHz' when name='Intel(R) Pentium(R) 4 CPU 2.66GHz' then 'P4 2.6 GHz' when name='Intel(R) Pentium(R) 4 CPU 2.80GHz' then 'P4 2.8 GHz' when name='Intel(R) Pentium(R) 4 CPU 3.00GHz' then 'P4 3.0 GHz' when name='Intel(R) Pentium(R) 4 CPU 3.06GHz' then 'P4 3.0 GHz' when name='Intel(R) Pentium(R) 4 CPU 3.20GHz' then 'P4 3.2 GHz' when name='Intel(R) Core(TM)2 CPU T5500 @ 1.66GHz' then 'Core2 1.6 GHz' when name='Intel(R) Core(TM)2 CPU 4400 @ 2.00GHz' then 'Core2 2.0 GHz' when name='Intel(R) Core(TM)2 Duo CPU E4500 @ 2.20GHz' then 'Core2 2.2 GHz' when name='Intel(R) Core(TM)2 CPU 6600 @ 2.40GHz' then 'Core2 2.4 GHz' when name='Intel(R) XEON(TM) CPU 1.80GHz' then 'Xeon 1.8 GHz' when name='Intel(R) Xeon(R) CPU 5130 @ 2.00GHz' then 'Xeon 2.0 GHz' when name='Intel(R) Xeon(TM) CPU 2.40GHz' then 'Xeon 2.4 GHz' when name='Intel(R) Xeon(R) CPU 5150 @ 2.66GHz' then 'Xeon 2.6 GHz' when name='Intel Celeron-Prozessor' then 'Celeron' when name='Intel(R) Celeron(TM) CPU 1200MHz' then 'Celeron 1.2 GHz' when name='Intel(R) Celeron(R) CPU 1.70GHz' then 'Celeron 1.7 GHz' when name='Intel(R) Celeron(R) CPU 2.00GHz' then 'Celeron 2.0 GHz' when name='Intel(R) Celeron(R) CPU 2.40GHz' then 'Celeron 2.4 GHz' when name='Intel(R) Celeron(R) CPU 2.53GHz' then 'Celeron 2.5 GHz' when name='Intel(R) Celeron(R) CPU 2.66GHz' then 'Celeron 2.6 GHz' when name='Intel(R) Celeron(R) CPU 2.80GHz' then 'Celeron 2.8 GHz' when name='Intel(R) Pentium(R) M processor 1500MHz' then 'PM 1.5 GHz' when name='Intel(R) Pentium(R) M processor 1.50GHz' then 'PM 1.5 GHz' when name='Intel(R) Pentium(R) M processor 1.60GHz' then 'PM 1.6 GHz' when name='Intel(R) Pentium(R) M processor 1.73GHz' then 'PM 1.7 GHz' when name='Intel(R) Celeron(R) M CPU 420 @ 1.60GHz' then 'PM 1.6 GHz' when name='Intel Pentium III-Prozessor' then 'P3' when name='Intel(R) Pentium(R) III CPU family 1133MHz' then 'P3 1.1 GHz' when name='Intel Pentium II-Prozessor' then 'P2' when name='Unbekannter Intel P6-Prozessor' then 'Unbekannter P6' when name='Unbekannter Intel-Prozessor' then 'Unbekannt' when name='AMD Sempron(tm) 2400+' then 'Sempron 2400+' else name end from WMIProcessor b where b.client_id = a.client_id and b.ID = (select max(ID) from WMIProcessor c where c.client_id = a.client_id) ) </model>
<OS> (select case {whenOS}='Windows 2000 Professional{sp4-2195}{dt}' then 'Win2000 SP4 Pro' {whenOS}='Windows 2000 Professional{sp2-2195}{dt}' then 'Win2000 SP2 Pro' {whenOS}='Windows 2000 Server{sp4-2195}{dt}' then 'Win2000 Server SP4' {whenOS}='Windows 2000 Server{sp2-2195}{dt}' then 'Win2000 Server SP2' {whenOS}='Windows XP Professional{sp2-2600}{dt}' then 'WinXP SP2 Pro' {whenOS}='Windows XP Professional{sp1-2600}{dt}' then 'WinXP SP1 Pro' {whenOS}='Windows NT Workstation, Version 4.0{sp6a}{dt}' then 'WinNT SP6a' {whenOS}='Windows Server 2003 {se}{sp1-3790}{dt}' then 'Server 2003 SP1 Standard' {whenOS}='Windows Server 2003 {ee}{sp2-3790}{dt}' then 'Server 2003 SP2 Enterprise' {whenOS}='Windows Server 2003 {ee}{sp1-3790}{dt}' then 'Server 2003 SP1 Enterprise' else OperatingSystem end from InvComputer b where b.client_id = a.client_id ) </OS>
<ee>Enterprise Edition, Version 5.2</ee> <se>Standard Edition, Version 5.2</se> <whenOS>when OperatingSystem</whenOS> <dt>, Deutsch (Deutschland)</dt> <sp4-2195>, Version 5.0, Service Pack 4 (Build 2195)</sp4-2195> <sp2-2195>, Version 5.0, Service Pack 2 (Build 2195)</sp2-2195> <sp2-2600>, Version 5.1, Service Pack 2 (Build 2600)</sp2-2600> <sp1-2600>, Version 5.1, Service Pack 1 (Build 2600)</sp1-2600> <sp6a>, Service Pack 6a (Build 1381)</sp6a> <sp1-3790>, Service Pack 1 (Build 3790)</sp1-3790> <sp2-3790>, Service Pack 2 (Build 3790)</sp2-3790> </extends>
|
|
|
Seite 6
|
|
4 - DyQL-Skriptelemente 6 - Systemvoraussetzungen
|
|
 |
 |
 |
 |
|
 |