Поделиться через


Функция 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
целевая платформа Виндоус
заголовка msiquery.h
библиотеки Msi.lib
DLL Msi.dll

См. также

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

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