共用方式為


ModuleSubstitution 數據表

ModuleSubstitution 數據表會指定模塊資料庫的可設定欄位,並提供每個欄位組態的範本。 使用者或合併工具可能會查詢此資料表,以判斷要執行的組態作業。 此資料表不會合併至目標資料庫。

下表不能包含可設定的欄位,不能列在此資料表中:

ModuleSubstitution 數據表

ModuleConfiguration 數據表

ModuleExclusion 數據表

ModuleSignature 數據表

ModuleSubstitution 數據表具有下列數據行。

類型 鑰匙
桌子 識別碼 Y N
文字 Y N
識別碼 Y N
價值 文字 N Y

 

數據表

此資料列會指定模組資料庫中要修改之數據表的名稱。

此欄位會指定 Table 資料列中名為 之資料表中目標資料列的主鍵。 多個主鍵會以分號分隔。 在對目標數據表進行任何變更之前,系統會選取目標數據列進行修改。 如果ModuleSubstitution資料表中的一筆記錄變更目標數據列的主鍵欄位,則ModuleSubstitution數據表中的其他記錄會根據原始主鍵數據套用,而不是主鍵替代的結果。 數據列替代的順序未定義。

此資料列中的值一律 CMSM 特殊格式。 常值分號(';')或等號 ('=') 可以藉由在字元前面加上反斜杠來新增。 '\'. 索引鍵的 Null 值是以 Null、前置分號、兩個連續分號或尾端分號表示,取決於 Null 值是否為唯一、第一個、中間或最後一個索引鍵數據行值。

此欄位會指定 Row 資料列中名為 之資料列中的目標資料行。 如果ModuleSubstitution資料表中的多個數據列變更相同目標數據列的不同數據行,則會在修改的數據列插入資料庫之前執行所有數據行替代。 數據行替代的順序未定義。

此數據行包含字串,提供格式化範本,讓數據取代成 Table、Row 和 Column 所指定的目標欄位。 遇到表單 [=ItemA] 的替代字串時,字串,包括括號字元,會由可設定的 “ItemA” 值取代。可設定的專案 「ItemA」 是在 ModuleConfiguration 資料表 的 Name 數據行中指定,而且其值是由合併工具提供。 如果合併工具拒絕為取代字串中的任何專案提供值,則會取代ModuleConfiguration Table的DefaultValue資料行中指定的預設值。 如果字串參考不在ModuleConfiguration數據表中的專案,合併就會失敗。

  • 此資料列使用 CMSM 特殊格式。 常值分號(';')或等號 ('=') 可以藉由在字元前面加上反斜杠來新增至數據表。 '\'.
  • [值] 欄位可能包含多個替代字串。 例如,字串中的專案 「Food1」 和 「Food2」 組態良好,但 [=Food2] 比較好,因為 [=Food2] 比較營養。
  • 取代字串不得為巢狀。 範本 “[=AB[=CDE]]” 無效。
  • 如果 [值] 欄位評估為 Null,且目標欄位不可為 Null,合併會失敗,而且會建立 msmErrorBadNullSubstitution 類型的錯誤物件,並將其新增至錯誤清單。 如需詳細資訊,請參閱函式get_Type 中所述的錯誤類型。
  • 如果 [值] 欄位評估為 null GUID:{00000000-0000-0000-0000-000000000000},則會在數據列合併至模組之前,以功能名稱取代 Null GUID。 如需詳細資訊,請參閱 在合併模組中參考功能
  • [值] 欄位中的範本會在插入目標欄位之前進行評估。 取代任何功能之前,會先對數據列進行替代。
  • 如果 Value 資料行評估為只有整數位元的字串(具有選擇性的 + 或 -),則字串會先轉換成整數,然後再取代為 整數格式類型的目標欄位,。 如果範本評估為不只包含整數位元的字串(以及選擇性 + 或 -),則結果無法取代為整數目標欄位。 嘗試將非整數插入整數位段會導致合併失敗,並將 msmErrorBadSubstitutionType 錯誤物件新增至錯誤清單。
  • 如果在 [數據表] 和 [數據行] 欄位中指定的目標數據行是 文字格式類型,而 Value 字段的評估會產生 整數格式類型,則會將數位的十進位表示插入目標文字欄位中。
  • 如果目標欄位是 整數格式類型,而 Value 欄位是由 Bitfield Format中專案的非分隔清單所組成,則目標欄位中的值會使用位 AND 運算符與位 OR 專案的所有遮罩值反函數結合, 然後結合使用位 OR 運算元搭配每個整數或位欄位專案,當其對應的遮罩值遮罩時。 基本上,這會明確地將屬性中的位設定為提供的值,但會將單元格中的所有其他位單獨留在數據格中。
  • 如果 [值] 字段評估為 索引鍵格式類型,而且是使用多個主鍵之數據表中的索引鍵,則專案名稱後面可能會加上分號和整數值,指出以 1 為基底的索引,一起構成主鍵的值集。 如果未指定任何整數,則會使用值 1。 例如,Control 數據表 有兩個主鍵數據行,Dialog_和 Control。 Control 數據表中索引鍵的專案 「Item1」 值會是 「DialogName;ControlName“,其中 DialogName 是Dialog_數據表中的值,而 ControlName 是 Control 數據行中的值。 若要只替代 ControlName,替代字串串 [=Item1;應該使用 2]。

言論

ModuleSubstition 數據表是由 可設定的合併模組使用。 需要 Mergemod.dll 2.0 版或更新版本,才能建立可設定的合併模組。

為了確保與 2.0 版之前的 Mergemod.dll 版本相容,ModuleConfiguration 數據表 和 ModuleSubstitution 數據表應該包含在每個模組的 ModuleIgnoreTable 數據表 中。