ModuleSubstitution Table
Tabela ModuleSubstitution określa konfigurowalne pola bazy danych modułu i zawiera szablon konfiguracji każdego pola. Użytkownik lub narzędzie scalania może wykonać zapytanie względem tej tabeli, aby określić, jakie operacje konfiguracji mają być wykonywane. Ta tabela nie jest scalona z docelową bazą danych.
Poniższe tabele nie mogą zawierać konfigurowalnych pól i nie mogą być wymienione w tej tabeli:
Tabela moduleSubstitution
tabeli ModuleConfiguration
tabeli ModuleExclusion
tabeli ModuleSignature
Tabela ModuleSubstitution zawiera następujące kolumny.
Kolumna | Typ | Klucz | Nullable |
---|---|---|---|
Stół | identyfikator | Y | N |
Szereg | tekstu | Y | N |
Kolumna | identyfikator | Y | N |
Wartość | tekstu | N | Y |
Kolumny
-
tabela
-
Ta kolumna określa nazwę tabeli modyfikowanej w bazie danych modułu.
-
wiersz
-
To pole określa klucze podstawowe wiersza docelowego w tabeli o nazwie w kolumnie Tabela. Wiele kluczy podstawowych jest rozdzielonych średnikami. Wiersze docelowe są wybierane do modyfikacji przed wprowadzeniem jakichkolwiek zmian w tabeli docelowej. Jeśli jeden rekord w tabeli ModuleSubstitution zmieni pole klucza podstawowego wiersza docelowego, inne rekordy w tabeli ModuleSubstitution są stosowane na podstawie oryginalnych danych klucza podstawowego, a nie wynikowe podstawianie klucza podstawowego. Kolejność podstawiania wierszy jest niezdefiniowana.
Wartości w tej kolumnie są zawsze w formacie specjalnym CMSM. Średnik literału (';') lub znak równości ('=') można dodać, prefiksując znak z ukośnikiem odwrotnym. '\'. Wartość null klucza jest oznaczona wartością null, średnikiem wiodącym, dwoma kolejnymi średnikami lub średnikiem końcowym, w zależności od tego, czy wartość null jest jedyną, pierwszą, środkową lub końcową wartością kolumny klucza.
-
kolumna
-
To pole określa kolumnę docelową w wierszu o nazwie w kolumnie Wiersz. Jeśli wiele wierszy w tabeli ModuleSubstitution zmienia różne kolumny tego samego wiersza docelowego, wszystkie podstawienia kolumn są wykonywane przed wstawieniem zmodyfikowanego wiersza do bazy danych. Kolejność podstawienia kolumn jest niezdefiniowana.
-
wartość
-
Ta kolumna zawiera ciąg, który zawiera szablon formatowania danych, które są zastępowane w polu docelowym określonym przez tabelę, wiersz i kolumnę. Gdy napotkano ciąg podstawienia formularza [=ItemA], ciąg, w tym znaki nawiasu, jest zastępowany przez wartość konfigurowalnego elementu "ItemA". Konfigurowalny element "ItemA" jest określony w kolumnie Nazwa tabeli ModuleConfiguration, a jego wartość jest dostarczana przez narzędzie scalania. Jeśli narzędzie scalania odmówi podania wartości dla dowolnego elementu w ciągu zastępczym, wartość domyślna określona w kolumnie DefaultValue tabeli ModuleConfiguration zostanie zastąpiona. Jeśli ciąg odwołuje się do elementu, który nie występuje w tabeli ModuleConfiguration, scalanie kończy się niepowodzeniem.
- Ta kolumna używa specjalnego formatu cmSM . Średnik literału (';') lub znak równości ('=') można dodać do tabeli, prefiksując znak z ukośnikiem odwrotnym. '\'.
- Pole Wartość może zawierać wiele ciągów podstawienia. Na przykład konfiguracja elementów "Food1" i "Food2" w ciągu: "[=Food1] jest dobra, ale [=Food2] jest lepsza, ponieważ [=Food2] jest bardziej pożywna."
- Ciągi zastępcze nie mogą być zagnieżdżone. Szablon "[=AB[=CDE]]" jest nieprawidłowy.
- Jeśli pole Wartość ma wartość null, a pole docelowe nie może mieć wartości null, scalanie kończy się niepowodzeniem i obiektem błędu typu msmErrorBadNullSubstitution zostanie utworzony i dodany do listy błędów. Aby uzyskać szczegółowe informacje, zobacz typy błędów opisane w temacie get_Type Function.
- Jeśli pole Wartość zwróci wartość null identyfikatora GUID: {00000000-0000-0000-0000-000000000000}, identyfikator GUID o wartości null zostanie zastąpiony nazwą funkcji przed scaleniem wiersza z modułem. Aby uzyskać szczegółowe informacje, zobacz odwoływanie się do funkcji w module scalania.
- Szablon w polu Wartość jest obliczany przed wstawieniem do pola docelowego. Podstawianie do wiersza jest wykonywane przed zastąpieniem wszystkich funkcji.
- Jeśli kolumna Value zwraca wartość do ciągu tylko znaków całkowitych (z opcjonalnym znakiem + lub -), ciąg zostanie przekonwertowany na liczbę całkowitą przed zastąpieniem w polu docelowym typu formatu liczby całkowitej . Jeśli szablon oblicza ciąg, który nie zawiera tylko znaków całkowitych (i opcjonalny + lub -), wynik nie może zostać zastąpiony polem docelowym liczby całkowitej. Próba wstawienia liczby innej niż liczba całkowita do pola całkowitego powoduje niepowodzenie scalania i dodanie obiektu błędu msmErrorBadSubstitutionType do listy błędów.
- Jeśli kolumna docelowa określona w polach Tabela i Kolumna to Typ formatu tekstowego, a ocena pola Wartość powoduje typ formatu liczby całkowitej, do pola tekstowego docelowego zostanie wstawiona reprezentacja dziesiętna liczby.
- Jeśli polem docelowym jest typ formatu liczby całkowitej, a pole Wartość składa się z nienależącej do listy elementów w Format pola bitowego, wartość w polu docelowym jest łączona przy użyciu operatora bitowego i z odwrotnością bitowej LUB wszystkich wartości maski z elementów, następnie połączone przy użyciu operatora bitowego OR z każdą liczbą całkowitą lub elementy pola bitowego, gdy są maskowane przez odpowiadające im wartości maski. Zasadniczo jawnie ustawia bity z właściwości na podane wartości, ale pozostawia wszystkie inne bity w komórce sam.
- Jeśli pole Wartość daje w wyniku typ formatu klucza, i jest kluczem w tabeli, która używa wielu kluczy podstawowych, nazwa elementu może być po nim średnik i wartość całkowita wskazująca indeks oparty na 1 w zestawie wartości, które razem tworzą klucz podstawowy. Jeśli nie określono liczby całkowitej, zostanie użyta wartość 1. Na przykład tabela Control ma dwie kolumny klucza podstawowego, Dialog_ i kontrolkę. Wartość elementu "Item1", który jest kluczem w tabeli Formant, będzie mieć postać "DialogName; ControlName", gdzie DialogName jest wartością w tabeli Dialog_, a ControlName jest wartością w kolumnie Kontrolka. Aby zastąpić tylko ControlName, ciąg podstawienia [=Item1; 2] należy użyć.
Uwagi
Tabela ModuleSubstition jest używana przez Configurable Merge Modules. Mergemod.dll w wersji 2.0 lub nowszej jest wymagany do utworzenia konfigurowalnego modułu scalania.
Aby zapewnić zgodność z wersjami Mergemod.dll starszych niż wersja 2.0, tabela ModuleConfiguration i moduleSubstitution tabel powinny być uwzględnione w tabeli ModuleIgnoreTable każdego modułu.