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.