Формат определения столбца
MsiViewGetColumnInfo исвойство columnInfoобъекта view View использует следующий формат для описания определений столбцов базы данных. Каждый столбец описывается строкой в соответствующем поле записи, возвращаемой функцией или свойством. Строка определения состоит из одной буквы, представляющей тип данных, за которым следует ширина столбца (в символах, если применимо, байты в противном случае). Ширина нуля обозначает несвязанную ширину (например, длинные текстовые поля и потоки). Прописная буква указывает, что значения NULL разрешены в столбце.
Дескриптор столбца | Строка определения |
---|---|
s? | Строка, переменная длина (?=1-255) |
s0 | Строка, длина переменной |
i2 | Короткое целое число |
i4 | Длинное целое число |
v0 | Двоичный поток |
g? | Временная строка (?=0-255) |
j? | Временное целое число (?=0,1,2,4) |
O0 | Временный объект |
Строки, используемые для описания столбцов, имеют следующую связь со строками запросов SQL, используемыми CREATE и ALTER. Дополнительные сведения см. в синтаксисе SQL.
Возвращаемое значение | Синтаксис SQL |
---|---|
s0 | LONGCHAR |
l0 | LONGCHAR LOCALIZABLE |
s # | CHAR(#) |
s # | CHARACTER(#) |
l # | CHAR(#) LOCALIZABLE |
l # | CHARACTER(#) LOCALIZABLE |
i2 | КОРОТКИЙ |
i2 | INT |
i2 | ЦЕЛОЕ ЧИСЛО |
i4 | ДЛИННЫЙ |
v0 | ОБЪЕКТ |
Если буква не прописна, инструкция SQL должна быть добавлена с помощью NOT NULL.
Возвращаемое значение | Синтаксис SQL |
---|---|
s0 | LONGCHAR НЕ NULL |
Установщик не ограничивает длину столбцов значением, указанным в формате определения столбцов. Если данные, введенные в поле, превышают указанную длину столбца, пакет не сможет пройти проверку пакета. Чтобы пройти проверку в этом случае, необходимо изменить данные или схему базы данных. Единственным средством изменения длины столбца стандартной таблицы является экспорт таблицы с помощью MsiDatabaseExport, редактирования экспортированного idt-файла, а затем импорта таблицы с помощью MsiDatabaseImport. Авторы не могут изменять типы данных столбцов, значение NULL или атрибуты локализации любых столбцов в стандартных таблицах. Авторы могут создавать пользовательские таблицы с столбцами с любыми атрибутами столбцов.
При использовании MsiDatabaseMerge для объединения эталонной базы данных в целевую базу данных имена столбцов, количество первичных ключей и типы данных столбцов должны соответствовать. MsiDatabaseMerge игнорирует атрибуты локализации и длины столбцов. Если столбец в эталонной базе данных имеет длину 0 или больше длины этого столбца в целевой базе данных, MsiDatabaseMerge увеличивает длину столбца в целевой базе данных до длины в эталонной базе данных.
При использовании Mergmod.dll версии 2.0 приложение модуля слияния к файлу .msi никогда не изменяет длину столбцов или типов столбцов существующей таблицы базы данных. Однако применение модуля слияния может изменить схему существующей таблицы базы данных, если модуль добавляет новые столбцы в таблицу, для которой допустимо добавить столбцы. При использовании Mergemod.dll версии меньше версии 2.0 приложение модуля слияния никогда не изменяет длину столбцов и никогда не изменяет схему целевой базы данных.