<< Click to Display Table of Contents >> Navigation: Attribute (Eigenschaften / Merkmale) > Attributarten > Dynamische Attribute > Benutzerdefinierte dynamische Attribute |
Der Nutzer definiert ein SQL-Script, in dem der auszugebende Werte ermittelt wird.
Vor der Berechnung wird eine temporäre Tabelle mit zwei Spalten erstellt, wie z.B.:
create table #vtab_rechner_dyn_1(VTAB_Rechner_ID, VCOL_123)
|
Im nachfolgenden SQL-Script wird für das dynamische Attribut “VCOL_123” der Wert berechnet.
SQL-Scripte arbeiten mit drei vordefinierten Variablen:
1.$_TT : Name der Temp-Tabelle, z.B. #vtab_rechner_dyn_1
2.$_ColID: Name der ID-Spalte, z.B. VTAB_Rechner_ID
3.$_ColValue: Name der Result-Spalte, z.B. [#vtab_rechner_dyn_1].[VCOL_123]
Da das SQL-Script direkt mit der rimacon-engine verknüpft wird, sollten die SQL-Scripte keine festen Variablen-Namen benutzen. Beispiel:
Falsch: declare @cnt int
Richtig: declare @$cnt int
Beispiel 1: Typ Zeichenfolge, Länge 50
update $_TT set $_ColValue='hallo'
|
Ergebnis
Name |
RAM |
Test SQL |
NB0001 |
384 |
Hallo |
S1111 |
512 |
Hallo |
S2222 |
768 |
Hallo |
S3333 |
1024 |
Hallo |
S4444 |
3072 |
Hallo |
S5555 |
2048 |
Hallo |
Beispiel 2: Typ Zeichenfolge, Länge 50
update $_TT set $_ColValue='RAM=' + convert(varchar(20),VTAB_Rechner.VCOL_RAM) + ' MB' from $_TT inner join VTAB_Rechner on VTAB_Rechner.VTAB_Rechner_ID=$_TT.$_ColID
|
Ergebnis
Name |
RAM |
Test SQL |
NB0001 |
384 |
RAM=384 MB |
S1111 |
512 |
RAM=512 MB |
S2222 |
768 |
RAM=768 MB |
S3333 |
1024 |
RAM=1024 MB |
S4444 |
3072 |
RAM=3072 MB |
S5555 |
2048 |
RAM=2048 MB |
Beispiel 3: Typ Zeichenfolge, Länge 50
update $_TT set $_ColValue='zu wenig für Vista' from $_TT inner join VTAB_Rechner R on R.VTAB_Rechner_ID=$_TT.$_ColID where R.VCOL_RAM<768
update $_TT set $_ColValue='knapp für Vista' from $_TT inner join VTAB_Rechner R on R.VTAB_Rechner_ID=$_TT.$_ColID where R.VCOL_RAM>=768 and R.VCOL_RAM<=1023
update $_TT set $_ColValue='ausreichend für Vista' from $_TT inner join VTAB_Rechner R on R.VTAB_Rechner_ID=$_TT.$_ColID where R.VCOL_RAM>=1024 and R.VCOL_RAM<=2047
update $_TT set $_ColValue='mehr als ausreichend für Vista' from $_TT inner join VTAB_Rechner R on R.VTAB_Rechner_ID=$_TT.$_ColID where R.VCOL_RAM>=2048
|
Ergebnis
Name |
RAM |
Test SQL |
NB0001 |
384 |
zu wenig für Vista |
S1111 |
512 |
zu wenig für Vista |
S2222 |
768 |
Knapp für Vista |
S3333 |
1024 |
ausreichend für Vista |
S4444 |
3072 |
mehr als ausreichend für Vista |
S5555 |
2048 |
mehr als ausreichend für Vista |
Beispiel 4: Typ HTML (direkt) , Länge 100
update $_TT set $_ColValue='<span style="color:red">zu wenig für Vista</span>' from $_TT inner join VTAB_Rechner R on R.VTAB_Rechner_ID=$_TT.$_ColID where R.VCOL_RAM<768
update $_TT set $_ColValue='<span style="color:gray">knapp für Vista</span>' from $_TT inner join VTAB_Rechner R on R.VTAB_Rechner_ID=$_TT.$_ColID where R.VCOL_RAM>=768 and R.VCOL_RAM<=1023
update $_TT set $_ColValue='ausreichend für Vista' from $_TT inner join VTAB_Rechner R on R.VTAB_Rechner_ID=$_TT.$_ColID where R.VCOL_RAM>=1024 and R.VCOL_RAM<=2047
update $_TT set $_ColValue='<span style="color:blue">mehr als ausreichend für Vista</span>' from $_TT inner join VTAB_Rechner R on R.VTAB_Rechner_ID=$_TT.$_ColID where R.VCOL_RAM>=2048
|
Ergebnis
Name |
RAM |
Test SQL |
NB0001 |
384 |
zu wenig für Vista |
S1111 |
512 |
zu wenig für Vista |
S2222 |
768 |
Knapp für Vista |
S3333 |
1024 |
ausreichend für Vista |
S4444 |
3072 |
mehr als ausreichend für Vista |
S5555 |
2048 |
mehr als ausreichend für Vista |