Exemple : Correction automatique de MPD

Si la vérification personnalisée que vous avez définie prend en charge la correction automatique, vous pouvez saisir le corps de cette fonction dans l'onglet Script de correction automatique en utilisant du code VBScript. Dans cet exemple, nous allons rédiger un script destiné à réparer un index Sybase IQ lié à un type de données invalide.

Le script est initialisé avec la ligne suivante, qui ne doit pas être modifiée :
Function %Fix%(obj, outmsg)
Au moment de l'exécution, la variable %Fix% est remplacée par le nom de la correction automatique. Le paramètre obj contient l'objet en cours de vérification et outmsg, le message à produire.
Nous allons commencer par définir un certain nombre de variables après la définition de fonction par défaut :
Dim c 'colonne index temporaire
Dim col 'colonne temporaire
Dim position
Dim DT_col
Ensuite, nous saisissons le corps de la fonction, qui commence en définissant la variable %Fix% à false (ce qui signifie que rien n'est fait), puis nous procédons à l'itération de toutes les colonnes associées à l'index et testons leur type de données. Si une colonne a un type varchar dont la longueur dépasse 255 caractères, le script produit un message, supprime la colonne de la collection des colonnes associées à l'index, et définit fix à true (la correction a été effectuée) :
%Fix% = False
 If obj.type = "LF" or obj.type = "HG" or obj.type = "CMP" or obj.type ="HNG" Then
  For Each c In obj.IndexColumns
   Set col = c.column
   position = InStr(col.datatype,"(") 
   If position <> 0 Then
    DT_col = Left(col.datatype, position -1) 
   Else 
    DT_col = col.datatype
   End If
   If (Ucase(DT_col) = "VARCHAR") And (col.length > 255) Then
    outmsg = "La correction automatique a supprimé la colonne " & col.Name & " de l'index."
    c.Delete
    %Fix% = True
   End If
  Next
 End If