共用方式為


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 標頭會根據 UNICODE 預處理器常數的定義,將 MsiDatabaseApplyTransform 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows Server 2012、Windows 8、Windows Server 2008 R2 或 Windows 7 上的 Windows Installer 5.0。 Windows Server 2008 或 Windows Vista 上的 Windows Installer 4.0 或 Windows Installer 4.5。 Windows Server 2003 或 Windows XP 上的 Windows Installer
目標平臺 窗戶
標頭 msiquery.h
連結庫 Msi.lib
DLL Msi.dll

另請參閱

Database Management Functions

資料庫轉換