Dela via


Kolumndefinitionsformat

MsiViewGetColumnInfo och egenskapen ColumnInfo för objektet View använder följande format för att beskriva databaskolumndefinitioner. Varje kolumn beskrivs av en sträng i motsvarande postfält som returneras av funktionen eller egenskapen. Definitionssträngen består av en enda bokstav som representerar datatypen följt av kolumnens bredd (i tecken i tillämpliga fall byte annars). En bredd på noll anger en obundna bredd (till exempel långa textfält och strömmar). En versal bokstav anger att null-värden tillåts i kolumnen.

Kolumnbeskrivning Definitionssträng
s? Sträng, variabellängd (?=1–255)
s0 Sträng, variabel längd
i2 Kort heltal
i4 Långt heltal
v0 Binär ström
g? Tillfällig sträng (?=0–255)
j? Tillfälligt heltal (?=0,1,2,4)
O0 Tillfälligt objekt

 

Strängarna som används för att beskriva kolumner har följande relation till SQL-frågesträngarna som används av CREATE och ALTER. Mer information finns i SQL Syntax.

Returnerat värde SQL-syntax
s0 LONGCHAR
l0 LONGCHAR LOCALIZABLE
s # CHAR(#)
s # CHARACTER(#)
l # CHAR(#) LOCALIZABLE
l # CHARACTER(#) LOCALIZABLE
i2 KORT
i2 INT
i2 HELTAL
i4 LÅNG
v0 OBJEKT

 

Om bokstaven inte är versal bör SQL-instruktionen läggas till med NOT NULL.

Returnerat värde SQL-syntax
s0 LONGCHAR INTE NULL

 

Installationsprogrammet begränsar inte längden på kolumner internt till det värde som anges i kolumndefinitionsformatet. Om de data som anges i ett fält överskrider den angivna kolumnlängden kan paketet inte skicka paketverifiering. Om du vill godkänna valideringen i det här fallet måste antingen data eller databasschemat ändras. Det enda sättet att ändra kolumnlängden för en standardtabell är genom att exportera tabellen med hjälp av MsiDatabaseExport, redigera den exporterade .idt-filen och sedan importera tabellen med hjälp av MsiDatabaseImport. Författare kan inte ändra kolumndatatyper, nullabilitet eller lokaliseringsattribut för kolumner i standardtabeller. Författare kan skapa anpassade tabeller med kolumner med valfria kolumnattribut.

När du använder MsiDatabaseMerge för att sammanfoga en referensdatabas till en måldatabas måste kolumnnamnen, antalet primära nycklar och kolumndatatyperna matchas. MsiDatabaseMerge ignorerar attributen för lokalisering och kolumnlängd. Om en kolumn i referensdatabasen har en längd som är 0 eller större än kolumnens längd i måldatabasen MsiDatabaseMerge ökar kolumnlängden i måldatabasen till längden i referensdatabasen.

När du använder Mergmod.dll version 2.0 ändrar programmet för en sammanslagningsmodul till en .msi fil aldrig längden på kolumner eller kolumntyperna i en befintlig databastabell. Programmet för en sammanslagningsmodul kan dock ändra schemat för en befintlig databastabell om modulen lägger till nya kolumner i en tabell som den är giltig för att lägga till kolumner för. När du använder en Mergemod.dll version som är mindre än version 2.0 ändrar programmet för en sammanslagningsmodul aldrig längden på kolumnerna och ändrar aldrig schemat för måldatabasen.