Compartilhar via


Formato de definição de coluna

MsiViewGetColumnInfo e a propriedade ColumnInfo do objeto View usam o formato a seguir para descrever definições de coluna de banco de dados. Cada coluna é descrita por uma cadeia de caracteres no campo de registro correspondente retornado pela função ou propriedade. A cadeia de caracteres de definição consiste em uma única letra que representa o tipo de dados seguido pela largura da coluna (em caracteres, quando aplicável, bytes caso contrário). Uma largura de zero designa uma largura não associado (por exemplo, campos de texto longos e fluxos). Uma letra maiúscula indica que valores nulos são permitidos na coluna.

Descritor de coluna Cadeia de caracteres de definição
s? Cadeia de caracteres, comprimento da variável (?=1-255)
s0 Cadeia de caracteres, comprimento da variável
i2 Inteiro curto
i4 Inteiro longo
v0 Fluxo binário
g? Cadeia de caracteres temporária (?=0-255)
j? Inteiro temporário (?=0,1,2,4)
O0 Objeto temporário

 

As cadeias de caracteres usadas para descrever colunas têm a seguinte relação com as cadeias de caracteres de consulta SQL usadas por CREATE e ALTER. Para obter mais informações, consulte de sintaxe do SQL.

Valor retornado Sintaxe SQL
s0 LONGCHAR
l0 LONGCHAR LOCALIZABLE
s # CHAR(#)
s # CHARACTER(#)
l # CHAR(#) LOCALIZABLE
l # CHARACTER(#) LOCALIZABLE
i2 CURTO
i2 INT
i2 INTEIRO
i4 LONGAS
v0 OBJETO

 

Se a letra não for maiúscula, a instrução SQL deverá ser acrescentada com NOT NULL.

Valor retornado Sintaxe SQL
s0 LONGCHAR NÃO NULL

 

O instalador não limita internamente o comprimento das colunas ao valor especificado pelo formato de definição de coluna. Se os dados inseridos em um campo excederem o comprimento da coluna especificado, o pacote não passará de validação do pacote. Para passar a validação nesse caso, os dados ou o esquema de banco de dados devem ser alterados. O único meio de alterar o comprimento da coluna de uma tabela padrão é exportar a tabela usando msiDatabaseExport, editando o arquivo .idt exportado e importando a tabela usando MsiDatabaseImport. Os autores não podem alterar os tipos de dados de coluna, a nulidade ou os atributos de localização de colunas em tabelas padrão. Os autores podem criar tabelas personalizadas com colunas com quaisquer atributos de coluna.

Ao usar MsiDatabaseMerge para mesclar um banco de dados de referência em um banco de dados de destino, os nomes de coluna, o número de chaves primárias e os tipos de dados de coluna devem corresponder. MsiDatabaseMerge ignora os atributos de localização e comprimento da coluna. Se uma coluna no banco de dados de referência tiver um comprimento 0 ou maior que o tamanho da coluna no banco de dados de destino, MsiDatabaseMerge aumentará o comprimento da coluna no banco de dados de destino para o comprimento no banco de dados de referência.

Ao usar Mergmod.dll versão 2.0, a aplicação de um módulo de mesclagem para um arquivo .msi nunca altera o comprimento das colunas ou os tipos de coluna de uma tabela de banco de dados existente. No entanto, a aplicação de um módulo de mesclagem poderá alterar o esquema de uma tabela de banco de dados existente se o módulo adicionar novas colunas a uma tabela para a qual é válido adicionar colunas. Ao usar uma versão Mergemod.dll menor que a versão 2.0, a aplicação de um módulo de mesclagem nunca altera o comprimento das colunas e nunca altera o esquema do banco de dados de destino.