Formato de definição de coluna
MsiViewGetColumnInfo e oda propriedade ColumnInfodo objetoViewusam o seguinte formato para descrever as definições de coluna do 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 definição consiste em uma única letra que representa o tipo de dados seguida pela largura da coluna (em caracteres quando aplicável, bytes caso contrário). Uma largura de zero designa uma largura ilimitada (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 definição |
---|---|
s? | String, comprimento variável (?=1-255) |
s0 | String, comprimento variável |
i2 | Inteiro curto |
i4 | Inteiro longo |
v0 | Fluxo binário |
g? | String 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 Sintaxe SQL.
Valor retornado | Sintaxe SQL |
---|---|
s0 | LONGCHAR |
l0 | LONGCHAR LOCALIZÁVEL |
s # | CHAR(#) |
s # | PERSONAGEM(#) |
l # | CHAR(#) LOCALIZÁVEL |
l # | CARACTERE(#) LOCALIZÁVEL |
i2 | CURTAS |
i2 | INT |
i2 | INTEIRO |
i4 | LONGO |
v0 | OBJETO |
Se a letra não estiver em maiúsculas, a instrução SQL deverá ser acrescentada com NOT NULL.
Valor retornado | Sintaxe SQL |
---|---|
s0 | LONGCHAR NÃO NULO |
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 de coluna especificado, o pacote não passará de validação do pacote. Para passar a validação nesse caso, os dados ou o esquema do banco de dados devem ser alterados. O único meio de alterar o comprimento da coluna de uma tabela padrão é exportando a tabela usando MsiDatabaseExport , editando o arquivo .idt exportado e, em seguida, importando a tabela usando MsiDatabaseImport. Os autores não podem alterar os tipos de dados de coluna, anulabilidade ou atributos de localização de quaisquer colunas em tabelas padrão. Os autores podem criar tabelas personalizadas com colunas com 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 igual ou superior ao comprimento dessa 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 o Mergmod.dll versão 2.0, a aplicação de um módulo de mesclagem a um arquivo .msi nunca altera o comprimento das colunas ou os tipos de coluna de uma tabela de banco de dados existente. A aplicação de um módulo de mesclagem pode, no entanto, 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.