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.