Freigeben über


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 Modify-Methode. Auf der niedrigsten Ebene kann die Spalte einer Datenbanktabelle ganze Zahlen (kurz oder lang), Zeichenfolgen oder Binärdaten speichern. Für ein Installationspaket sind jedoch bestimmte ganze Zahlen oder Zeichenfolgen in bestimmten Tabellen erforderlich. Diese Spezifikationen werden in der _Validation Tabelleverwaltet. Die Spalte "FileName" der Dateitabelle ist beispielsweise eine Zeichenfolgenspalte, speichert jedoch 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 Überprüfungsenumwerte, die mit der MsiViewModify-Funktion verwendet werden, ermöglichen die sofortige Überprüfung 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 ganze Zeile und enthält eine Fremdschlüsselüberprüfung. 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. Ein Einfügen schlägt fehl, wenn die Primärschlüssel nicht eindeutig sind. Wenn ein Aufruf von MsiViewModify mit einer der Überprüfungsenumen einen Fehler zurückgibt, können Sie wiederholte Aufrufe an MsiViewGetError zur Diagnose des Problems ausführen. 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 jede der Spalten Ihrer benutzerdefinierten Tabelle zur _Validation Tabelle hinzu, indem Sie den benutzerdefinierten Tabellennamen und den Spaltennamen als Primärschlüssel verwenden. Geben Sie eine Beschreibung oder den Zweck jeder Spalte in der Spalte "Beschreibung" der _Validation Tabelle an. Geben Sie die anwendbaren Anforderungen für jede Spalte mit den Spalten Nullable, MinValue, MaxValue, KeyTable, KeyColumn, Category und Set ein:

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

Es folgt eine Liste der Spalten (zusätzlich zu "Tabelle", "Spalte" und "Beschreibung") in der _Validation Tabelle, die ausgefüllt werden kann, wenn die Spalte vom angegebenen Typ ist. (Beachten Sie, dass Sie nicht alle Spalten ausfüllen müssen.)

Art Spalten
Ganze Zahl Nullable, MinValue, MaxValue, KeyTable, KeyColumn, Set
Schnur Nullable, KeyTable, KeyColumn, Category, Set, MinValue, MaxValue
Binär Nullwerte, 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. Sie überprüft die _Validation Tabelle auf Verweise in den Spalten KeyTable und KeyColumn für die Tabelle, zu der die Zeile "gelöscht" gehört. Wenn Spalten vorhanden sind, die die Tabelle mit der Zeile "gelöscht" als potenziellen Fremdschlüssel auflisten, durchläuft diese Spalte, um festzustellen, ob eine der Werte referenziert Werte in der Zeile "gelöscht" ist. Eine Fehlerrückgabe bedeutet, dass Sie die relationale Integrität der Datenbank unterbrechen, indem Sie die Zeile löschen.