Benutzerdefinierte dynamische Attribute

<< 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