Функция MsiDatabaseApplyTransformA (msiquery.h)

Функция MsiDatabaseApplyTransform применяет преобразование к базе данных.

Синтаксис

UINT MsiDatabaseApplyTransformA(
  [in] MSIHANDLE hDatabase,
  [in] LPCSTR    szTransformFile,
  [in] int       iErrorConditions
);

Параметры

[in] hDatabase

Дескриптор базы данных, полученной из MsiOpenDatabase , в преобразование .

[in] szTransformFile

Указывает имя применяемого файла преобразования.

[in] iErrorConditions

Условия ошибок, которые должны быть подавлены. Этот параметр представляет собой битовое поле, которое может содержать следующие биты.

Условие ошибки Значение
MSITRANSFORM_ERROR_ADDEXISTINGROW
0x0001
Добавление уже существующей строки.
MSITRANSFORM_ERROR_DELMISSINGROW
0x0002
Удаление несуществующей строки.
MSITRANSFORM_ERROR_ADDEXISTINGTABLE
0x0004
Добавление уже существующей таблицы.
MSITRANSFORM_ERROR_DELMISSINGTABLE
0x0008
Удаление несуществующей таблицы.
MSITRANSFORM_ERROR_UPDATEMISSINGROW
0x0010
Обновление несуществующей строки.
MSITRANSFORM_ERROR_CHANGECODEPAGE
0x0020
Кодовая страница преобразования и базы данных не совпадают и не имеют нейтральной кодовой страницы.
MSITRANSFORM_ERROR_VIEWTRANSFORM
0x0100
Создайте временную таблицу _TransformView.

Возвращаемое значение

Функция MsiDatabaseApplyTransform возвращает одно из следующих значений:

Комментарии

Функция MsiDatabaseApplyTransform задерживает преобразование таблиц до тех пор, пока это не потребуется. Все добавляемые или удаляемые таблицы обрабатываются немедленно. Однако изменения в существующей таблице откладываются до загрузки таблицы или фиксации базы данных.

Ошибка возникает при вызове MsiDatabaseApplyTransform , когда таблицы уже загружены и сохранены в хранилище.

Поскольку разделитель списка для преобразований, источников и исправлений является точкой с запятой, этот символ не следует использовать для имен файлов или путей.

Эту функцию нельзя вызвать из пользовательских действий. Вызов этой функции из настраиваемого действия приводит к сбою функции.

В случае сбоя функции можно получить расширенные сведения об ошибке с помощью MsiGetLastErrorRecord.

Примечание

Заголовок msiquery.h определяет MsiDatabaseApplyTransform в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Установщик Windows 5.0 в Windows Server 2012, Windows 8, Windows Server 2008 R2 или Windows 7. Установщик Windows 4.0 или установщик Windows 4.5 в Windows Server 2008 или Windows Vista. Установщик Windows в Windows Server 2003 или Windows XP
Целевая платформа Windows
Header msiquery.h
Библиотека Msi.lib
DLL Msi.dll

См. также раздел

Функции управления базами данных

Преобразования базы данных