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.