таблица _TransformView
Это временная таблица только для чтения, используемая для просмотра преобразований в режиме представления преобразования. Эта таблица никогда не сохраняется установщиком.
Чтобы вызвать режим представления преобразования, получите дескриптор и откройте эталонную базу данных. См . раздел Получение дескриптора базы данных. Вызовите MsiDatabaseApplyTransform с MSITRANSFORM_ERROR_VIEWTRANSFORM. Это останавливает применение преобразования к базе данных и создает дамп содержимого преобразования в _TransformView таблице. Доступ к данным в таблице можно получить с помощью SQL-запросов. См. раздел Работа с запросами.
Таблица _TransformView не очищается при применении другого преобразования. Таблица отражает совокупный эффект последовательных приложений. Чтобы просмотреть преобразования отдельно, необходимо освободить таблицу.
Таблица _TransformView содержит следующие столбцы.
Столбец | Type | Ключ | Допускает значения NULL |
---|---|---|---|
Таблица | Идентификатор | Да | N |
Столбец | Text | Да | N |
Строка | Text | Да | Да |
Данные | Text | N | Да |
Текущие | Text | N | Да |
Столбец
-
Таблице
-
Имя измененной таблицы базы данных.
-
Столбца
-
Имя измененного столбца таблицы или INSERT, DELETE, CREATE или DROP.
-
Строки
-
Список значений первичного ключа, разделенных вкладками. Значения первичного ключа NULL представлены одним пробелом. Значение Null в этом столбце указывает на изменение схемы.
-
Данных
-
Данные, имя потока данных или определение столбца.
-
Текущего
-
Текущее значение из эталонной базы данных или число столбца.
Комментарии
_TransformView хранится в памяти по количеству блокировок, которое можно освободить с помощью следующей команды SQL.
ALTER TABLE _TransformView FREE.
Доступ к данным в таблице можно получить с помощью SQL-запросов. Язык SQL имеет два main отделов: язык определения данных (DDL), который используется для определения всех объектов в базе данных SQL, и язык обработки данных (DML), который используется для выбора, вставки, обновления и удаления данных в объектах, определенных с помощью DDL.
Операции преобразования языка обработки данных (DML) указываются следующим образом. Язык обработки данных (DML) — это те инструкции в SQL, которые управляют данными, а не определяют.
Операция преобразования | Результат SQL |
---|---|
Изменение данных | {table} {column} {row} {data} {текущее значение} |
Вставка строки | {table} "INSERT" {row} NULL NULL |
Удаление строки | {table} "DELETE" {row} NULL NULL |
Операции преобразования языка определения данных (DDL) указываются следующим образом. Язык определения данных (DDL) — это те инструкции в SQL, которые определяют, а не управляют данными.
Операция преобразования | Результат SQL |
---|---|
Добавление столбца | {table} {column} NULL {defn} {номер столбца} |
Добавить таблицу | {table} "CREATE" NULL NULL NULL NULL |
Удаление таблицы | {table} "DROP" NULL NULL NULL |
Когда приложение преобразования добавляет эту таблицу, поле Данных получает текст, который можно интерпретировать как 16-разрядное целочисленное значение. Значение описывает столбец с именем в поле Столбец. Вы можете сравнить целочисленное значение с константами в следующей таблице, чтобы определить определение измененного столбца.
bit | Описание |
---|---|
Биты 0 7 |
Шестнадцатеричное: 0x0000 0x0100 Десятичное число: 0 255 Ширина столбца |
Бит 8 |
Шестнадцатеричное: 0x0100 Десятичное число: 256 Постоянный столбец. Ноль означает временный столбец. |
Бит 9 |
Шестнадцатеричное: 0x0200 Десятичное число: 1023 Локализуемый столбец. Ноль означает, что столбец не может быть локализован. |
Биты 10 11 |
Шестнадцатеричное: 0x0000 Десятичное число: 0 Long integer Шестнадцатеричное: 0x0400 Десятичное: 1024 Короткое целое число Шестнадцатеричное: 0x0800 Decimal: 2048 Двоичный объект Шестнадцатеричное: 0x0C00 Десятичное число: 3072 Строка |
Бит 12 |
Шестнадцатеричное: 0x1000 Десятичное число: 4096 Столбец, допускающий значение NULL. Ноль означает, что столбец не допускает значения NULL. |
Бит 13 |
Шестнадцатеричное: 0x2000 Десятичное: 8192 Столбец первичного ключа. Ноль означает, что этот столбец не является первичным ключом. |
Биты 14 15 |
Шестнадцатеричное: 0x4000 0x8000 Десятичная: 16384 32768 Зарезервировано |
Пример скрипта, демонстрирующий _TransformView таблицу, см. в разделе Просмотр преобразования.