Condividi tramite


Formato definizione colonna

MsiViewGetColumnInfo e la proprietà ColumnInfodell'oggetto View utilizzano il formato seguente per descrivere le definizioni delle colonne di database. Ogni colonna è descritta da una stringa nel campo di record corrispondente restituito dalla funzione o dalla proprietà . La stringa di definizione è costituita da una singola lettera che rappresenta il tipo di dati seguito dalla larghezza della colonna (in caratteri, se applicabile, byte). Una larghezza pari a zero definisce una larghezza non associato, ad esempio campi di testo lunghi e flussi. Una lettera maiuscola indica che nella colonna sono consentiti valori Null.

Descrittore di colonna Stringa di definizione
s? Stringa, lunghezza variabile (?=1-255)
s0 Stringa, lunghezza variabile
i2 Integer breve
i4 Intero lungo
v0 Flusso binario
g? Stringa temporanea (?=0-255)
j? Intero temporaneo (?=0,1,2,4)
O0 Oggetto temporaneo

 

Le stringhe usate per descrivere le colonne hanno la relazione seguente con le stringhe di query SQL usate da CREATE e ALTER. Per altre informazioni, vedere sintassi SQL.

Valore restituito Sintassi SQL
s0 LONGCHAR
l0 LONGCHAR LOCALIZABLE
s # CHAR(#)
s # CHARACTER(#)
l # CHAR(#) LOCALIZABLE
l # CHARACTER(#) LOCALIZABLE
i2 CORTO
i2 INT
i2 NUMERO INTERO
i4 LUNGO
v0 OGGETTO

 

Se la lettera non è maiuscola, l'istruzione SQL deve essere aggiunta con NOT NULL.

Valore restituito Sintassi SQL
s0 LONGCHAR NOT NULL

 

Il programma di installazione non limita internamente la lunghezza delle colonne al valore specificato dal formato di definizione della colonna. Se i dati immessi in un campo superano la lunghezza della colonna specificata, il pacchetto non supera convalida del pacchetto. Per passare la convalida in questo caso, è necessario modificare i dati o lo schema del database. L'unico modo per modificare la lunghezza della colonna di una tabella standard consiste nell'esportare la tabella usando MsiDatabaseExport, modificando il file con estensione idt esportato e quindi importando la tabella usando MsiDatabaseImport. Gli autori non possono modificare i tipi di dati della colonna, i valori Nullbility o gli attributi di localizzazione di qualsiasi colonna nelle tabelle standard. Gli autori possono creare tabelle personalizzate con colonne con attributi di colonna.

Quando si usa MsiDatabaseMerge per unire un database di riferimento in un database di destinazione, i nomi delle colonne, il numero di chiavi primarie e i tipi di dati delle colonne devono corrispondere. MsiDatabaseMerge ignora gli attributi di localizzazione e lunghezza della colonna. Se una colonna nel database di riferimento ha una lunghezza pari a 0 o maggiore della lunghezza della colonna nel database di destinazione, MsiDatabaseMerge aumenta la lunghezza della colonna nel database di destinazione fino alla lunghezza nel database di riferimento.

Quando si usa Mergmod.dll versione 2.0, l'applicazione di un modulo di merge in un file .msi non modifica mai la lunghezza delle colonne o i tipi di colonna di una tabella di database esistente. L'applicazione di un modulo di merge può tuttavia modificare lo schema di una tabella di database esistente se il modulo aggiunge nuove colonne a una tabella per cui è valido aggiungere colonne. Quando si usa una versione Mergemod.dll precedente alla versione 2.0, l'applicazione di un modulo di merge non modifica mai la lunghezza delle colonne e non modifica mai lo schema del database di destinazione.