Spaltendefinitionsformat

MsiViewGetColumnInfo und die ColumnInfo-Eigenschaft des View-Objekts beschreiben Datenbankspaltendefinitionen im folgenden Format. Jede Spalte wird durch eine Zeichenfolge im entsprechenden Datensatzfeld beschrieben, das von der Funktion oder Eigenschaft zurückgegeben wird. Die Definitionszeichenfolge besteht aus einem einzelnen Buchstaben für den Datentyp, gefolgt von der Breite der Spalte (in Zeichen, falls zutreffend, oder in Bytes). Eine Breite von 0 (null) gibt eine unbegrenzte Breite (z. B. lange Textfelder und Datenströme) an. Ein Großbuchstabe gibt an, dass NULL-Werte in der Spalte zulässig sind.

Spaltendeskriptor Definitionszeichenfolge
s? Zeichenfolge, variable Länge (? = 1–255)
s0 Zeichenfolge, variable Länge
i2 Short Integer
i4 Lange ganze Zahl
v0 Binärdatenstrom
g? Temporäre Zeichenfolge (? = 0–255)
j? Temporärer Integerwert (? = 0, 1, 2, 4)
O0 Temporäres Objekt

 

Die Zeichenfolgen zum Beschreiben von Spalten haben die folgende Beziehung zu den SQL-Abfragezeichenfolgen, die für CREATE und ALTER verwendet werden. Weitere Informationen finden Sie unter SQL Syntax.

Rückgabewert SQL-Syntax
s0 LONGCHAR
l0 LONGCHAR LOCALIZABLE
s # CHAR(#)
s # CHARACTER(#)
l # CHAR(#) LOCALIZABLE
l # CHARACTER(#) LOCALIZABLE
i2 SHORT
i2 INT
i2 INTEGER
i4 LONG
v0 OBJECT

 

Wenn der Buchstabe nicht großgeschrieben ist, sollte die SQL-Anweisung mit NOT NULL angefügt werden.

Rückgabewert SQL-Syntax
s0 LONGCHAR NOT NULL

 

Das Installationsprogramm beschränkt die Länge der Spalten nicht intern auf den im Spaltendefinitionsformat angegebenen Wert. Wenn die in einem Feld eingegebenen Daten die angegebene Spaltenlänge überschreiten, besteht das Paket die Paketüberprüfung nicht. Um die Überprüfung in diesem Fall zu bestehen, müssen entweder die Daten oder das Datenbankschema geändert werden. Die einzige Möglichkeit zum Ändern der Spaltenlänge einer Standardtabelle besteht darin, die Tabelle mit MsiDatabaseExport zu exportieren, die exportierte IDT-Datei zu bearbeiten und die Tabelle dann mit MsiDatabaseImport zu importieren. Ersteller*innen können die Spaltendatentypen, die Zulässigkeit von NULL-Werten und die Lokalisierungsattribute der Spalten in Standardtabellen nicht ändern. Ersteller*innen können benutzerdefinierte Tabellen mit Spalten mit beliebigen Spaltenattributen erstellen.

Zum Zusammenführen einer Verweisdatenbank in einer Zieldatenbank mit MsiDatabaseMerge müssen die Spaltennamen, die Anzahl der Primärschlüssel und die Spaltendatentypen übereinstimmen. MsiDatabaseMerge ignoriert die Attribute für Lokalisierung und Spaltenlänge. Wenn eine Spalte in der Referenzdatenbank die Länge 0 oder einen höheren Wert als die Länge dieser Spalte in der Zieldatenbank aufweist, erhöht MsiDatabaseMerge die Spaltenlänge in der Zieldatenbank auf die Länge in der Referenzdatenbank.

Bei Verwendung von „Mergmod.dll“ Version 2.0 ändert die Anwendung eines Mergemoduls in einer MSI-Datei niemals die Länge von Spalten oder die Spaltentypen einer vorhandenen Datenbanktabelle. Die Anwendung eines Mergemoduls kann jedoch das Schema einer vorhandenen Datenbanktabelle ändern, wenn das Modul einer Tabelle, der Spalten hinzugefügt werden dürfen, neue Spalten hinzufügt. Bei Verwendung einer Version von „Mergemod.dll“ vor Version 2.0 ändert die Anwendung eines Mergemoduls niemals die Länge der Spalten und das Schema der Zieldatenbank.