Sdílet prostřednictvím


TabulkaSubstitution ModuleSubstitution

Tabulka ModuleSubstitution určuje konfigurovatelná pole databáze modulu a poskytuje šablonu pro konfiguraci jednotlivých polí. Nástroj pro sloučení nebo uživatel může tuto tabulku dotazovat, aby určil, jaké operace konfigurace se mají provést. Tato tabulka není sloučena s cílovou databází.

Následující tabulky nemohou obsahovat konfigurovatelná pole a nesmí být uvedená v této tabulce:

Tabulka ModuleSubstitution

tabulky ModuleConfiguration

tabulky ModuleExclusion

tabulky ModuleSignature

Tabulka ModuleSubstitution obsahuje následující sloupce.

Sloupec Typ Klíč Nullable
Stůl identifikátor Y N
Veslovat textové Y N
Sloupec identifikátor Y N
Hodnota textové N Y

 

Sloupce

tabulka

Tento sloupec určuje název tabulky, která se upravuje v databázi modulu.

řádek

Toto pole určuje primární klíče cílového řádku v tabulce pojmenované ve sloupci Tabulka. Více primárních klíčů je odděleno středníky. Cílové řádky jsou vybrány k úpravám před provedením jakýchkoli změn v cílové tabulce. Pokud jeden záznam v tabulce ModuleSubstitution změní pole primárního klíče cílového řádku, použijí se jiné záznamy v tabulce ModuleSubstitution na základě dat původního primárního klíče, nikoli na základě výsledku nahrazení primárního klíče. Pořadí nahrazení řádků není definováno.

Hodnoty v tomto sloupci jsou vždy ve CMSM speciální formát. Literální středník (';') nebo rovnítko ('=') lze přidat předponou znaku zpětným lomítkem. '\'. Hodnota null pro klíč se označuje hodnotou null, počáteční středníkem, dvěma po sobě jdoucími středníky nebo koncovým středníkem v závislosti na tom, jestli je hodnota null jedinou, první, střední nebo poslední hodnotou sloupce klíče.

sloupec

Toto pole určuje cílový sloupec v řádku pojmenovaném ve sloupci Řádek. Pokud více řádků v tabulce ModuleSubstitution změní různé sloupce stejného cílového řádku, všechny nahrazení sloupců se provádějí před vložením upraveného řádku do databáze. Pořadí nahrazení sloupce není definováno.

hodnota

Tento sloupec obsahuje řetězec, který poskytuje šablonu formátování pro data, která se nahrazují do cílového pole určeného tabulkou, řádkem a sloupcem. Při výskytu náhradního řetězce formuláře [=ItemA] se řetězec, včetně závorek, nahradí hodnotou konfigurovatelné položky ItemA. Konfigurovatelná položka ItemA se zadává ve sloupci Název tabulky ModuleConfiguration a její hodnota je poskytována nástrojem pro sloučení. Pokud slučovací nástroj odmítne zadat hodnotu pro libovolnou položku v náhradním řetězci, nahradí se výchozí hodnota zadaná ve sloupci DefaultValue tabulky ModuleConfiguration. Pokud řetězec odkazuje na položku, která není v tabulce ModuleConfiguration, sloučení selže.

  • Tento sloupec používá CMSM speciální formát. Literální středník (';') nebo znaménko rovná se ('=') lze do tabulky přidat předponou znaku zpětným lomítkem. '\'.
  • Pole Hodnota může obsahovat více náhradních řetězců. Například konfigurace položek "Jídlo1" a "Jídlo2" v řetězci: "[=Jídlo1] je dobrá, ale [=Jídlo2] je lepší, protože [=Jídlo2] je více výživnější."
  • Náhradní řetězce nesmí být vnořené. Šablona [=AB[=CDE]] je neplatná.
  • Pokud se pole Hodnota vyhodnotí jako null a cílové pole není nullable, sloučení selže a vytvoří se chybový objekt typu msmErrorBadNullSubstitution a přidá se do seznamu chyb. Podrobnosti najdete v typech chyb popsaných v get_Type funkce.
  • Pokud se pole Hodnota vyhodnotí jako identifikátor GUID s hodnotou null: {00000000-0000-0000-0000-000000000000}, nahradí se identifikátor GUID s hodnotou null názvem funkce před sloučením řádku do modulu. Podrobnosti najdete v tématu Odkazování na funkce v modulu sloučení.
  • Šablona v poli Hodnota se vyhodnotí před vložením do cílového pole. Nahrazení do řádku se provádí před nahrazením jakýchkoli funkcí.
  • Pokud se sloupec Hodnota vyhodnotí jako řetězec pouze celočíselné znaky (s volitelným znakem + nebo -), řetězec se před nahrazením na cílové pole typu celočíselného formátu převede na celé číslo. Pokud se šablona vyhodnotí jako řetězec, který neobsahuje pouze celočíselné znaky (a volitelné + nebo -), nelze výsledek nahradit celočíselné cílové pole. Pokus o vložení jiného než celého čísla do pole typu integer způsobí selhání sloučení a přidá objekt chyby msmErrorBadSubstitutionType do seznamu chyb.
  • Pokud je cílový sloupec zadaný v polích Tabulka a Sloupec Typ formátu textua vyhodnocení pole Hodnota bude výsledkem Typ celočíselného formátu, desetinné číslo se vloží do cílového textového pole.
  • Pokud je cílové pole Typ celočíselného formátua pole Hodnota se skládá ze seznamu položek v Formát bitových polí, hodnota v cílovém poli se zkombinuje pomocí bitového operátoru AND s inverzní bitové OR všech hodnot masky z položek, poté zkombinujte pomocí bitové OPERÁTOR OR s každou celočíselnou nebo bitovou pole položek při maskování odpovídajícími hodnotami masky. V podstatě to explicitně nastaví bity z vlastností na zadané hodnoty, ale ponechá všechny ostatní bity v buňce samotné.
  • Pokud se pole Hodnota vyhodnotí jako Typ formátu klíčea je klíčem do tabulky, která používá více primárních klíčů, může být název položky následovaný středníkem a celočíselnou hodnotou, která označuje index založený na 1 sadě hodnot, které společně tvoří primární klíč. Pokud není zadáno žádné celé číslo, použije se hodnota 1. Například tabulka Control má dva sloupce s primárními klíči, Dialog_ a Control. Hodnota položky Item1, která je klíčem do řídicí tabulky, bude ve formuláři DialogName; ControlName", kde DialogName je hodnota v tabulce Dialog_ a ControlName je hodnota ve sloupci Control. Chcete-li nahradit pouze ControlName, řetězec nahrazení [=Item1; 2] je třeba použít.

Poznámky

Tabulka ModuleSubstition je používána konfigurovatelné slučovací moduly. Mergemod.dll k vytvoření konfigurovatelného modulu sloučení se vyžaduje Mergemod.dll verze 2.0 nebo novější.

Aby byla zajištěna kompatibilita s verzemi Mergemod.dll staršími než 2.0, měly by být tabulky ModuleConfiguration a ModuleSubstitution zahrnuty do tabulky ModuleIgnoreTable každého modulu.