Interne Überprüfung

Beim Erstellen eines Installationspakets können Sie die MsiViewModify-Funktion oder die View.Modify-Methode verwenden, um sicherzustellen, dass die eingegebenen Daten syntaktisch korrekt sind. Weitere Informationen finden Sie unter Ändern der Methode. Auf der niedrigsten Ebene kann die Spalte einer Datenbanktabelle ganze Zahlen (kurz oder lang), Zeichenfolgen oder Binärdaten speichern. Ein Installationspaket erfordert jedoch bestimmte ganze Zahlen oder Zeichenfolgen in bestimmten Tabellen. Diese Spezifikationen werden in der _ Validierungstabelleverwaltet. Die FileName-Spalte der Dateitabelle ist beispielsweise eine Zeichenfolgenspalte, speichert aber speziell einen Dateinamen. Daher sollte ihr Eintrag nicht nur eine Zeichenfolge sein, sondern auch die Anforderungen für die Benennung von Dateien erfüllen.

Die verschiedenen Validierungsenumerwerte, die mit der MsiViewModify-Funktion verwendet werden, ermöglichen eine sofortige Validierung auf verschiedenen Ebenen. Die MSIMODIFY _ VALIDATE _ FIELD-Enumeration kann verwendet werden, um einzelne Felder eines Datensatzes zu überprüfen. Fremdschlüssel werden nicht überprüft. Die MSIMODIFY _ VALIDATE-Enumeration überprüft eine gesamte Zeile und schließt die Fremdschlüsselüberprüfung ein. Wenn Sie eine neue Zeile in eine Tabelle einfügen, verwenden Sie die MSIMODIFY _ VALIDATE _ NEW-Enumeration, um zu überprüfen, ob Sie gültige Daten hinzufügen und eindeutige Primärschlüssel verwenden. Beim Einfügen tritt ein Fehler auf, wenn die Primärschlüssel nicht eindeutig sind. Wenn ein Aufruf von MsiViewModify mit einer der Validierungsenumerungen einen Fehler zurückgibt, können Sie zur Diagnose des Problems wiederholt MsiViewGetError aufrufen. MsiViewGetError gibt die Spalte an, in der der Fehler aufgetreten ist, sowie den Enumerationswert, um das Problem zu beheben. Weitere Informationen finden Sie unter GetError-Methode.

Sie können auch die interne Überprüfung verwenden, um sicherzustellen, dass andere Autoren Daten ordnungsgemäß in Ihre benutzerdefinierte Tabelle eingeben. Fügen Sie die einzelnen Spalten der benutzerdefinierten Tabelle mithilfe des _ benutzerdefinierten Tabellennamens und des Spaltennamens als Primärschlüssel der Tabelle Validation hinzu. Geben Sie eine Beschreibung oder einen Zweck jeder Spalte in der Spalte Beschreibung der _ Tabelle Validierung an. Geben Sie die anwendbaren Anforderungen für jede Spalte ein, indem Sie die Spalten Nullable, MinValue, MaxValue, KeyTable, KeyColumn, Category und Set verwenden:

  • Wenn die Spalte NULL-Werte zulasse, geben Sie "Y" ein. Falls nicht, geben Sie "N" ein.
  • Wenn die Spalte eine ganzzahlige Spalte ist und einen Bereich von ganzen Zahlen enthalten kann, geben Sie diesen Bereich mithilfe der Spalten MinValue und MaxValue ein.
  • Fremdschlüsselspalten werden mithilfe der Spalten KeyTable und KeyColumn identifiziert.
  • Geben Sie für Zeichenfolgenspalten eine Kategorie wie Dateiname, GUID oder Bezeichner an. Weitere Informationen finden Sie unter Spaltendatentypen.
  • Wenn die Daten nur eine bestimmte Anzahl von Werten (Zeichenfolge oder ganze Zahl) betreffen können, verwenden Sie die Spalte Festlegen, um die zulässigen Werte aufzulisten.

Im Folgenden finden Sie eine Liste der Spalten (zusätzlich zu Tabelle, Spalte und Beschreibung) in der _ Validierungstabelle, die ausgefüllt werden können, wenn Ihre Spalte den angegebenen Typ aufweist. (Beachten Sie, dass Sie nicht alle Spalten ausfüllen müssen.)

type Spalten
Integer Nullable, MinValue, MaxValue, KeyTable, KeyColumn, Set
String Nullable, KeyTable, KeyColumn, Category, Set, MinValue, MaxValue
Binary NULL-Werte zulässig, Kategorie (Kategorie muss "Binär" sein)

Erstellungsumgebungen können MSIMODIFY _ VALIDATE _ DELETE verwenden. Bei dieser Enumeration wird davon ausgegangen, dass Sie die Zeile löschen möchten. Es wird keine Feld- oder Fremdschlüsselüberprüfung ausgeführt. Diese Enumeration führt tatsächlich eine umgekehrte Fremdschlüsselüberprüfung durch. Die Tabelle Validation wird _ auf Verweise in den Spalten KeyTable und KeyColumn für die Tabelle überprüft, zu der die "gelöschte" Zeile gehört. Wenn Spalten vorhanden sind, in denen die Tabelle mit der Zeile "gelöscht" als potenzieller Fremdschlüssel aufgeführt ist, durchkreist sie diese Spalte, um festzustellen, ob einer der Werte in der Zeile "gelöscht" referenziert ist. Eine Fehlerrückgabe bedeutet, dass Sie die relationale Integrität der Datenbank unterbrechen, indem Sie die Zeile löschen.