Delen via


Indeling van kolomdefinitie

MsiViewGetColumnInfo- en de eigenschap ColumnInfo van het object Weergave gebruiken de volgende indeling om databasekolomdefinities te beschrijven. Elke kolom wordt beschreven door een tekenreeks in het bijbehorende recordveld dat wordt geretourneerd door de functie of eigenschap. De definitietekenreeks bestaat uit één letter die het gegevenstype vertegenwoordigt, gevolgd door de breedte van de kolom (in tekens indien van toepassing, bytes anders). Een breedte van nul wijst een niet-afhankelijke breedte aan (bijvoorbeeld lange tekstvelden en stromen). Een hoofdletter geeft aan dat null-waarden zijn toegestaan in de kolom.

Kolomdescriptor Definitietekenreeks
s? Tekenreeks, variabele lengte (?=1-255)
s0 Tekenreeks, variabele lengte
i2 Kort geheel getal
i4 Lang geheel getal
v0 Binaire stroom
g? Tijdelijke tekenreeks (?=0-255)
j? Tijdelijk geheel getal (?=0,1,2,4)
O0 Tijdelijk object

 

De tekenreeksen die worden gebruikt om kolommen te beschrijven, hebben de volgende relatie met de SQL-queryreeksen die worden gebruikt door CREATE en ALTER. Zie SQL-syntaxisvoor meer informatie.

Geretourneerde waarde SQL-syntaxis
s0 LONGCHAR
l0 LONGCHAR LOCALIZABLE
s # CHAR(#)
s # CHARACTER(#)
l # CHAR(#) LOCALIZABLE
l # CHARACTER(#) LOCALIZABLE
i2 KORT
i2 INT
i2 GEHEEL GETAL
i4 LANG
v0 OBJECT

 

Als de letter geen hoofdletter heeft, moet de SQL-instructie worden toegevoegd aan NOT NULL.

Geretourneerde waarde SQL-syntaxis
s0 LONGCHAR NOT NULL

 

Het installatieprogramma beperkt de lengte van kolommen niet intern tot de waarde die is opgegeven door de indeling van de kolomdefinitie. Als de in een veld ingevoerde gegevens de opgegeven kolomlengte overschrijden, kan het pakket niet pakketvalidatie doorgeven. Als u de validatie in dit geval wilt doorgeven, moeten de gegevens of het databaseschema worden gewijzigd. De enige methode om de kolomlengte van een standaardtabel te wijzigen, is door de tabel te exporteren met behulp van MsiDatabaseExport, het geëxporteerde .idt-bestand te bewerken en vervolgens de tabel te importeren met MsiDatabaseImport. Auteurs kunnen de kolomgegevenstypen, nullabiliteit of lokalisatiekenmerken van kolommen in standaardtabellen niet wijzigen. Auteurs kunnen aangepaste tabellen maken met kolommen met eventuele kolomkenmerken.

Wanneer u MsiDatabaseMerge- gebruikt om een referentiedatabase samen te voegen in een doeldatabase, moeten de kolomnamen, het aantal primaire sleutels en kolomgegevenstypen overeenkomen. MsiDatabaseMerge negeert de kenmerken lokalisatie en kolomlengte. Als een kolom in de referentiedatabase een lengte heeft van 0 of groter is dan de lengte van die kolom in de doeldatabase, verhoogt MsiDatabaseMerge de kolomlengte in de doeldatabase naar de lengte in de referentiedatabase.

Wanneer u Mergmod.dll versie 2.0 gebruikt, verandert de toepassing van een samenvoegmodule in een .msi bestand nooit de lengte van kolommen of de kolomtypen van een bestaande databasetabel. De toepassing van een samenvoegmodule kan echter het schema van een bestaande databasetabel wijzigen als de module nieuwe kolommen toevoegt aan een tabel waarvoor het geldig is om kolommen toe te voegen. Wanneer u een Mergemod.dll versie kleiner dan versie 2.0 gebruikt, verandert de toepassing van een samenvoegmodule nooit de lengte van kolommen en wordt het schema van de doeldatabase nooit gewijzigd.