Scripts d'attributs calculés

Vous pouvez créer des attributs étendus dont les valeurs dépendent des valeurs d'autres attributs. Ils peuvent être en lecture seule ou en lecteur et écriture.

Les scripts suivants fournissent un moyen de lire et d'écrire la valeur de l'attribut standard Name dans un attributs étendu calculé :
Script Get Script Set
Function %Get%(obj)
   %Get% = obj.GetAttribute("Name")
End Function
Sub %Set%(obj, value)
    obj.SetAttribute "Name", value
End Sub
Les scripts suivants lisent la valeur de l'attribut étendu calculé FileGroup depuis l'option physique filegroup, et l'écrivent dans l'attribut physique :
Script Get Script Set
Function %Get%(obj)
%Get% = obj.GetPhysicalOptionValue("on/<filegroup>")
End Function
Sub %Set%(obj, value)
obj.SetPhysicalOptionValue "on/<filegroup>", value
End Sub
Les scripts suivants lisent la valeur du nom de la base de données associée au MPD dans l'attribut étendu en lecture seule Database défini sur la métaclasse table :
Script Get Script Set
Function %Get%(obj)
%Get% = obj.GetAttribute("Parent.Database.Name")
End Function
[aucun]
Le script suivant évalue la valeur de l'attribut Number d'une table afin de définir l'attribut étendu booléen BigTable :
Script Get Script Set
Function %Get%(obj)
%Get% = obj.GetAttribute("Number") > 99999
  End Function
Vous pouvez utiliser la syntaxe suivante afin de définir la valeur booléenne de façon plus explicite :
Function %Get%(obj)
   Dim value
   If obj.GetAttribute("Number") > 99999 then 
      value = true
   Else
      value = false
   End if
   %Get% = value
  End Function
[aucun]
Le script suivant évalue la valeur de l'attribut Number d'une table afin de définir un attribut étendu de type texte TableSize :
Script Get Script Set
Function %Get%(obj)
Dim value
   If obj.GetAttribute("Number") < 10000 then 
      value = "Small"
   ElseIf ((obj.GetAttribute("Number") > 9999) and (obj.GetAttribute("Number") < 100000)) then 
      value = "Medium"
   ElseIf ((obj.GetAttribute("Number") > 99999) and (obj.GetAttribute("Number") < 1000000)) then 
      value = "Large"
   Else
      value = "Very Large"
   End if
   %Get% = value
End Function
[aucun]