共用方式為


MsiCreateTransformSummaryInfoA 函式 (msiquery.h)

MsiCreateTransformSummaryInfo 函式會建立現有轉換的摘要資訊,以包含驗證和錯誤狀況。 執行此函式會設定錯誤記錄,您可以使用 MsiGetLastErrorRecord 來存取

語法

UINT MsiCreateTransformSummaryInfoA(
  [in] MSIHANDLE hDatabase,
  [in] MSIHANDLE hDatabaseReference,
  [in] LPCSTR    szTransformFile,
  [in] int       iErrorConditions,
  [in] int       iValidation
);

參數

[in] hDatabase

包含新資料庫摘要資訊之資料庫的句柄。

[in] hDatabaseReference

包含原始摘要資訊之資料庫的句柄。

[in] szTransformFile

要加入摘要資訊之轉換的名稱。

[in] iErrorConditions

套用轉換時應隱藏的錯誤狀況。 使用下列一或多個值。

錯誤狀況 意義
none
0x00000000
下列任何條件皆無。
MSITRANSFORM_ERROR_ADDEXISTINGROW
0x00000001
加入存在的數據列。
MSITRANSFORM_ERROR_DELMISSINGROW
0x00000002
刪除不存在的數據列。
MSITRANSFORM_ERROR_ADDEXISTINGTABLE
0x00000004
加入存在的數據表。
MSITRANSFORM_ERROR_DELMISSINGTABLE
0x00000008
刪除不存在的數據表。
MSITRANSFORM_ERROR_UPDATEMISSINGROW
0x00000010
更新不存在的數據列。
MSITRANSFORM_ERROR_CHANGECODEPAGE
0x00000020
轉換和資料庫代碼頁不符,而且其代碼頁為中性。

[in] iValidation

指定要驗證的屬性,以確認轉換可以套用至資料庫。 此參數可以是下列一或多個值。

驗證旗標 意義
none
0x00000000
請勿驗證屬性。
MSITRANSFORM_VALIDATE_LANGUAGE
0x00000001
默認語言必須符合基底資料庫。
MSITRANSFORM_VALIDATE_PRODUCT
0x00000002
產品必須符合基底資料庫。
 

驗證產品版本旗標。

驗證旗標 意義
MSITRANSFORM_VALIDATE_MAJORVERSION
0x00000008
僅檢查主要版本。
MSITRANSFORM_VALIDATE_MINORVERSION
0x00000010
僅檢查主要和次要版本。
MSITRANSFORM_VALIDATE_UPDATEVERSION
0x00000020
檢查主要、次要和更新版本。
 

產品版本關聯性旗標。 在下表中,已安裝的版本是正在轉換的套件版本,而基底版本是用來建立轉換的套件版本。

驗證旗標 意義
MSITRANSFORM_VALIDATE_NEWLESSBASEVERSION
0x00000040
已安裝的版本 < 基底版本。
MSITRANSFORM_VALIDATE_NEWLESSEQUALBASEVERSION
0x00000080
已安裝的版本 <= 基底版本。
MSITRANSFORM_VALIDATE_NEWEQUALBASEVERSION
0x00000100
已安裝的版本 = 基底版本。
MSITRANSFORM_VALIDATE_NEWGREATEREQUALBASEVERSION
0x00000200
已安裝的版本 >= 基底版本。
MSITRANSFORM_VALIDATE_NEWGREATERBASEVERSION
0x00000400
已安裝的版本 > 基底版本。
 

升級程式代碼驗證旗標。

驗證旗標 意義
MSITRANSFORM_VALIDATE_UPGRADECODE
0x00000800
UpgradeCode 必須符合基底資料庫。

傳回值

此函式會傳回UINT。

備註

ProductCode 屬性和 ProductVersion 屬性必須在基底和參考資料庫的 Property Table 中定義。 如果使用 MSITRANSFORM_VALIDATE_UPGRADECODE,則 UpgradeCode 屬性也必須在兩個資料庫中定義。 如果不符合這些條件, MsiCreateTransformSummaryInfo 會傳回ERROR_INSTALL_PACKAGE_INVALID。

  • 請勿將分號用於檔名或路徑,因為它會當做轉換、來源和修補程式的清單分隔符使用。
  • 無法從自定義動作呼叫此函式。 從自定義動作呼叫此函式會導致函式失敗。

注意

msiquery.h 標頭會根據 UNICODE 預處理器常數的定義,將 MsiCreateTransformSummaryInfo 定義為自動選取此函式的 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
目標平台 Windows
標頭 msiquery.h
程式庫 Msi.lib
Dll Msi.dll

另請參閱

資料庫轉換

摘要資訊 Stream 屬性集