Freigeben über


Spaltendefinitionsformat

MsiViewGetColumnInfo und die ColumnInfo-Eigenschaft des View-Objekts verwenden das folgende Format, um Datenbankspaltendefinitionen zu beschreiben. 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, der den Datentyp gefolgt von der Breite der Spalte darstellt (in Zeichen, falls zutreffend, Byte). Eine Breite von Null bestimmt eine ungebundene Breite (z. B. lange Textfelder und Datenströme). Ein Großbuchstaben gibt an, dass Nullwerte in der Spalte zulässig sind.

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

 

Die zum Beschreiben von Spalten verwendeten Zeichenfolgen weisen die folgende Beziehung zu den SQL-Abfragezeichenfolgen auf, die von CREATE und ALTER verwendet werden. Weitere Informationen finden Sie unter SQL-Syntax.

Zurückgegebener Wert SQL-Syntax
s0 LONGCHAR
l0 LONGCHAR LOCALIZABLE
s # CHAR(#)
s # CHARACTER(#)
l # CHAR(#) LOCALIZABLE
l # CHARACTER(#) LOCALIZABLE
i2 KURZ
i2 INT
i2 GANZE ZAHL
i4 LANG
v0 OBJEKT

 

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

Zurückgegebener Wert SQL-Syntax
s0 LONGCHAR NICHT NULL

 

Das Installationsprogramm schränkt die Länge der Spalten nicht intern auf den wert ein, der durch das Spaltendefinitionsformat angegeben wird. Wenn die in ein Feld eingegebenen Daten die angegebene Spaltenlänge überschreiten, wird das Paket nicht Paketüberprüfungübergeben. 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 mithilfe MsiDatabaseExport-zu exportieren, die exportierte IDT-Datei zu bearbeiten und dann die Tabelle mit MsiDatabaseImportzu importieren. Autoren können die Spaltendatentypen, nullwerte oder Lokalisierungsattribute aller Spalten in Standardtabellen nicht ändern. Autoren können benutzerdefinierte Tabellen mit Spalten mit beliebigen Spaltenattributen erstellen.

Wenn Sie MsiDatabaseMerge zum Zusammenführen einer Referenzdatenbank in eine Zieldatenbank verwenden, müssen die Spaltennamen, die Anzahl der Primärschlüssel und Spaltendatentypen übereinstimmen. MsiDatabaseMerge ignoriert die Lokalisierungs- und Spaltenlängenattribute. Wenn eine Spalte in der Referenzdatenbank eine Länge von 0 oder größer als die Länge dieser Spalte in der Zieldatenbank hat, MsiDatabaseMerge die Spaltenlänge in der Zieldatenbank auf die Länge in der Referenzdatenbank erhöht.

Wenn Sie Mergmod.dll Version 2.0 verwenden, ändert die Anwendung eines Seriendruckmoduls in eine .msi Datei niemals die Länge der Spalten oder spaltentypen einer vorhandenen Datenbanktabelle. Die Anwendung eines Seriendruckmoduls kann das Schema einer vorhandenen Datenbanktabelle jedoch ändern, wenn das Modul einer Tabelle neue Spalten hinzufügt, für die es gültig ist, Spalten hinzuzufügen. Wenn Sie eine Mergemod.dll Version kleiner als Version 2.0 verwenden, ändert die Anwendung eines Seriendruckmoduls niemals die Länge der Spalten und ändert nie das Schema der Zieldatenbank.