Итак, эта группа состоит из 5 таблиц, краткое описание которых дано ниже:
Имя таблицы |
Краткое описание |
_Tables |
Хранит имена всех таблиц инсталляционной базы данных, включая созданные автором пакета для личных целей (например, для использования в своих операциях). Эта таблица доступна только на чтение |
_Columns |
Хранит информацию обо всех столбцах в таблицах инсталляционной базы данных. Но временные столбцы в этой таблице не хранятся. Как и предыдущая таблица, доступна только на чтение |
_Streams |
Содержит потоки данных OLE. Эта таблица временная и создается только при выполнении определенных SQL-запросов, например, при выполнении функции MsiRecordReadStream |
_Storages |
Содержит хранилища данных OLE. Эта таблица также временная и создается только при выполнении определенных SQL-запросов, например, при выполнении функции MsiRecordSetStream |
_Validation |
Эта таблица содержит информацию о столбцах в таблицах базы данных, включая их имена и диапазоны допустимых значений, а также другую важную для базы данных информацию. Используется только при проверке целостности базы данных |
Таблицы поиска используются для поиска файлов и приложений на компьютере пользователя. Чтобы найти файл, нужно сначала задать сигнатуру файла, а затем произвести поиск. Таблицы этой группы можно использовать для поиска в реестре, в данных конфигурации инсталлятора, по дереву каталогов или в .ini-файлах. При этом ищется файл или каталог с заданной уникальной сигнатурой. Затем, если файл найден, его сигнатура проверяется по таблице Signature, чтобы убедиться, что данный файл действительно тот, который нужен, а не просто еще один файл с таким же именем. Если запись в таблице поиска не связана с таблицей Signature, значит, запись ссылается на каталог, а не на файл.
Компонент, которому принадлежит нужный файл, определяется через связь между таблицами Fileи Component. Installer определяет подчиненность файла через таблицу компонентов, потому что каждый файл связан с одним компонентом. Местоположение компонента определяется по внешнему ключу в таблице Component, указывающему на таблицу Directory.
Нужные приложения ищутся аналогично: при этом находятся определенные файлы, из которых состоит приложение. Installer также предоставляет две таблицы, позволяющие искать предыдущие версии приложений: AppSearchи CCPSearch.
Группа таблиц поиска состоит из 7 таблиц, описание которых дано ниже:
Имя таблицы |
Краткое описание |
Signature |
Содержит информацию, уникальным образом описывающую некоторый файл 1 |
RegLocator |
Эта таблица содержит информацию, необходимую для поиска файлов или каталогов по записям в реестре |
IniLocator |
Эта таблица используется для поиска .ini-файлов. Эти файлы должны быть расположены в корневом каталоге Windows |
CompLocator |
Эта таблица используется для поиска файлов или каталогов с использованием конфигурационных данных Windows Installer |
DrLocator |
Эта таблица используется для поиска по дереву каталогов |
AppSearch |
Эта таблица содержит список свойств, которые должны быть установлены, если нужный файл или каталог с заданной сигнатурой найден |
CCPSearch |
Эта таблица содержит список сигнатур файлов, из которых хотя бы один должен быть установлен на пользовательском компьютере. Таблица используется при обновлении программ |
ПРИМЕЧАНИЕ
1. Формально по документации Microsoft таблица Signatureне относится к группе таблиц поиска. Но так как она нигде, кроме поиска, не используется, я позволил себе внести ее в эту группу.
Таблицы информации о программе
Таблицы этой группы содержат важную информацию о пакете инсталляции, используемую на протяжении всего процесса инсталляции.
Состоит эта группа из пяти таблиц:
Имя таблицы |
Краткое описание |
Property |
В этой таблице хранятся все свойства 1пакета инсталляции |
Binary |
В этой таблице хранятся двоичные данные для иконок, растров и т.п. Также здесь хранятся данные для пользовательских операций |
Error |
Эта таблица используется для поиска шаблонов форматирования при обработке ошибок. Installer имеет свой собственный механизм обработки ошибок |
Shortcut |
Здесь хранится вся информация, необходимая для создания файловых ярлыков |
ReserveCost |
Эта таблица содержит информацию о необходимом дисковом пространстве для каждого компонента приложения |
ПРИМЕЧАНИЕ
Читать дальше