ICE32
ICE32 проверяет, что ключи и внешние ключи в файле .msi имеют одинаковый размер и типы определений столбцов. Это настраиваемое действие ICE выполняет сравнение с помощью таблицы _Validation и типов определений, возвращаемых MsiViewGetColumnInfo. Дополнительные сведения см. в разделе Формат определения столбца.
Результат
ICE32 публикует ошибки, если файл .msi содержит какие-либо внешние ключи к ключам другой длины столбца или типа данных столбца.
Пример
ICE32 публикует две ошибки в приведенном примере:
- Существует внешний ключ и ключ, которые различаются по размеру.
- Есть внешний ключ и ключ, которые отличаются по типу определения.
Таблица _Validation (частичная)
Таблица | Столбец | KeyTable | KeyColumn |
---|---|---|---|
File | Версия | Файл | 1 |
Клапаном | Column8 | Клапаном | 1 |
Определения столбцов (частичные)
Таблица | Столбец | Тип | Размер |
---|---|---|---|
File | File | s | 72 |
File | Версия | S | 32 |
Клапаном | Column1 | i | 2 |
Клапаном | Column8 | S | 32 |
Столбец Версия таблицы Файл может быть внешним ключом к другому файлу в таблице File. Это происходит с сопутствующими файлами. Однако столбец Версия допускает только длину строки 32, а столбец Файл — длину строки 72. Чтобы устранить эту ошибку, измените длину строки на соответствие.
Есть внешний ключ и ключ, которые различаются по типам определений. Столбец 8 таблицы Flap указан как внешний ключ к Column1. Column8 — это строковый столбец, а Column1 — целочисленный столбец. Пары внешних ключей и ключей должны быть определены таким образом, чтобы их типы данных совпадали.
Связанные темы