Oszlopdefiníció formátuma
MsiViewGetColumnInfo és a View objektum ColumnInfo tulajdonságának az alábbi formátumban írja le az adatbázis oszlopdefinícióit. Minden oszlopot a függvény vagy tulajdonság által visszaadott megfelelő rekordmező sztringje ír le. A definíciós sztring egyetlen betűből áll, amely az adattípust, majd az oszlop szélességét jelöli (adott esetben karakterekben, máskülönben bájtokban). A nulla szélesség határ nélküli szélességet jelöl (például hosszú szövegmezőket és streameket). A nagybetűk azt jelzik, hogy a null értékek engedélyezettek az oszlopban.
Oszlopleíró | Definíciós sztring |
---|---|
s? | Sztring, változó hossza (?=1-255) |
s0 | Sztring, változó hossza |
i2 | Rövid egész szám |
i4 | Hosszú egész szám |
v0 | Bináris stream |
g? | Ideiglenes sztring (?=0-255) |
j? | Ideiglenes egész szám (?=0,1,2,4) |
O0 | Ideiglenes objektum |
Az oszlopok leírásához használt sztringek az alábbi kapcsolatban vannak a CREATE és az ALTER által használt SQL-lekérdezési sztringekkel. További információ: SQL Szintaxis.
Visszaadott érték | SQL-szintaxis |
---|---|
s0 | LONGCHAR |
l0 | LONGCHAR LOCALIZABLE |
s # | CHAR(#) |
s # | KARAKTER(#) |
l # | KARAKTER(#) HONOSÍTHATÓ |
l # | KARAKTER(#) HONOSÍTHATÓ |
i2 | RÖVID |
i2 | INT |
i2 | EGÉSZ SZÁM |
i4 | HOSSZÚ |
v0 | TÁRGY |
Ha a betű nem nagybetűs, az SQL-utasítást NOT NULL értékkel kell hozzáfűzni.
Visszaadott érték | SQL-szintaxis |
---|---|
s0 | LONGCHAR NOT NULL |
A telepítő nem korlátozza belsőleg az oszlopok hosszát az oszlopdefiníció formátuma által megadott értékre. Ha a mezőbe beírt adatok túllépik a megadott oszlophosszt, a csomag nem tudja átadni csomagérvényesítési. Az ellenőrzésnek ebben az esetben az adatokat vagy az adatbázissémát módosítani kell. Egy szabványos tábla oszlophosszának módosítására csak akkor van lehetőség, ha exportálja a táblát MsiDatabaseExporthasználatával, szerkeszti az exportált .idt fájlt, majd importálja a táblát MsiDatabaseImporthasználatával. A szerzők nem módosíthatják a standard táblák oszlopainak oszlopadattípusait, nullképességét vagy honosítási attribútumait. A szerzők olyan egyéni táblákat hozhatnak létre, amelyek oszlopattribútumokkal rendelkeznek.
Ha MsiDatabaseMerge használatával egyesít egy referenciaadatbázist egy céladatbázisba, az oszlopneveknek, az elsődleges kulcsok számának és az oszlop adattípusainak egyeznie kell. MsiDatabaseMerge figyelmen kívül hagyja a honosítási és oszlophossz-attribútumokat. Ha a referenciaadatbázis egy oszlopának hossza 0 vagy nagyobb, mint az adott oszlop hossza a céladatbázisban, MsiDatabaseMerge a céladatbázis oszlophosszát a referenciaadatbázis hosszára növeli.
Mergmod.dll 2.0-s verzió használatakor az egyesítési modul alkalmazása .msi fájlra soha nem változtatja meg egy meglévő adatbázistábla oszlopainak hosszát vagy oszloptípusait. Az egyesítési modul alkalmazása azonban módosíthatja egy meglévő adatbázistábla sémáját, ha a modul új oszlopokat ad hozzá egy olyan táblához, amelyhez érvényes oszlopok hozzáadása. Ha a 2.0-s verziónál kisebb Mergemod.dll verziót használ, az egyesítési modul alkalmazása soha nem változtatja meg az oszlopok hosszát, és soha nem módosítja a céladatbázis sémáját.