Tabella ModuleSubstitution
La tabella ModuleSubstitution specifica i campi configurabili di un database del modulo e fornisce un modello per la configurazione di ogni campo. L'utente o lo strumento di unione può eseguire una query in questa tabella per determinare quali operazioni di configurazione devono essere eseguite. Questa tabella non viene unita al database di destinazione.
Le tabelle seguenti non possono contenere campi configurabili e non devono essere elencate in questa tabella:
Tabella ModuleSubstitution
La tabella ModuleSubstitution contiene le colonne seguenti.
Colonna | Digitare | Chiave | Nullable |
---|---|---|---|
Tavolo | identificatore | Y | N |
Fila | testo | Y | N |
Colonna | identificatore | Y | N |
Valore | testo | N | Y |
Colonne
-
tabella
-
Questa colonna specifica il nome della tabella da modificare nel database del modulo.
-
riga
-
Questo campo specifica le chiavi primarie della riga di destinazione nella tabella denominata nella colonna Tabella. Più chiavi primarie sono separate da punti e virgola. Le righe di destinazione vengono selezionate per la modifica prima che vengano apportate modifiche alla tabella di destinazione. Se un record nella tabella ModuleSubstitution modifica il campo della chiave primaria di una riga di destinazione, gli altri record nella tabella ModuleSubstitution vengono applicati in base ai dati della chiave primaria originale, non ai risultati delle sostituzioni di chiave primaria. L'ordine di sostituzione delle righe non è definito.
I valori in questa colonna sono sempre in formato speciale CMSM. Un punto e virgola (';') letterale o segno di uguale ('=') può essere aggiunto anteponendo al carattere una barra rovesciata. '\'. Un valore Null per una chiave è indicato da un valore Null, da un punto e virgola iniziale, da due punti e virgola consecutivi o da un punto e virgola finale, a seconda che il valore Null sia un valore di colonna chiave unico, primo, intermedio o finale.
-
colonna
-
Questo campo specifica la colonna di destinazione nella riga denominata nella colonna Riga. Se più righe nella tabella ModuleSubstitution modificano colonne diverse della stessa riga di destinazione, tutte le sostituzioni di colonna vengono eseguite prima dell'inserimento della riga modificata nel database. L'ordine di sostituzione delle colonne non è definito.
-
valore
-
Questa colonna contiene una stringa che fornisce un modello di formattazione per i dati sostituiti nel campo di destinazione specificato da Tabella, Riga e Colonna. Quando viene rilevata una stringa di sostituzione del formato [=ItemA], la stringa, inclusi i caratteri tra parentesi quadre, viene sostituita dal valore per "ItemA configurabile". L'elemento configurabile "ItemA" viene specificato nella colonna Name della tabella ModuleConfiguration e il relativo valore viene fornito dallo strumento di unione. Se lo strumento di unione rifiuta di fornire un valore per qualsiasi elemento in una stringa di sostituzione, viene sostituito il valore predefinito specificato nella colonna DefaultValue della tabella ModuleConfiguration. Se una stringa fa riferimento a un elemento non presente nella tabella ModuleConfiguration, l'unione ha esito negativo.
- Questa colonna usa formato speciale CMSM. Un punto e virgola (';') letterale o segno di uguale ('=') può essere aggiunto alla tabella anteponendo al carattere una barra rovesciata. '\'.
- Il campo Valore può contenere più stringhe di sostituzione. Ad esempio, la configurazione degli elementi "Food1" e "Food2" nella stringa: "[=Food1] è buona, ma [=Food2] è migliore perché [=Food2] è più nutriente".
- Le stringhe di sostituzione non devono essere annidate. Il modello "[=AB[=CDE]]" non è valido.
- Se il campo Valore restituisce Null e il campo di destinazione non è nullable, l'unione non riesce e viene creato un oggetto errore di tipo msmErrorBadNullSubstitution e aggiunto all'elenco errori. Per informazioni dettagliate, vedere i tipi di errore descritti in get_Type Funzione.
- Se il campo Valore restituisce il GUID Null: {00000000-0000-0000-0000-000000000000}, il GUID Null viene sostituito dal nome della funzionalità prima che la riga venga unita al modulo. Per informazioni dettagliate, vedere Funzionalità di riferimento nei moduli di merge.
- Il modello nel campo Valore viene valutato prima di essere inserito nel campo di destinazione. La sostituzione in una riga viene eseguita prima di sostituire tutte le funzionalità.
- Se la colonna Valore restituisce una stringa di soli caratteri integer (con un valore facoltativo + o -), la stringa viene convertita in un numero intero prima di essere sostituita in un campo di destinazione del tipo di formato intero . Se il modello restituisce una stringa che non è costituita solo da caratteri interi (e un valore facoltativo + o -), il risultato non può essere sostituito in un campo di destinazione integer. Se si tenta di inserire un valore non intero in un campo integer, l'unione non riesce e aggiunge un oggetto errore msmErrorBadSubstitutionType all'elenco degli errori.
- Se la colonna di destinazione specificata nei campi Tabella e Colonna è un Tipo formato testoe la valutazione del campo Valore restituisce un tipo di formato Integer, una rappresentazione decimale del numero viene inserita nel campo di testo di destinazione.
- Se il campo di destinazione è un tipo di formato intero e il campo Valore è costituito da un elenco non delimitato di elementi in Formato campo di bit, il valore nel campo di destinazione viene combinato utilizzando l'operatore AND bit per bit con l'inversa dell' OR bit per bit di tutti i valori della maschera dagli elementi, quindi combinato usando l'operatore OR bit per bit con ognuno degli elementi integer o del campo di bit quando vengono mascherati con i valori della maschera corrispondenti. Essenzialmente, questo imposta in modo esplicito i bit dalle proprietà ai valori forniti, ma lascia soli tutti gli altri bit nella cella.
- Se il campo Valore restituisce un tipo di formato chiave e è una chiave in una tabella che usa più chiavi primarie, il nome dell'elemento può essere seguito da un punto e virgola e da un valore intero che indica l'indice in base 1 nel set di valori che insieme compongono una chiave primaria. Se non viene specificato alcun numero intero, viene utilizzato il valore 1. Ad esempio, la tabella Control include due colonne chiave primaria, Dialog_ e Control. Il valore di un elemento "Item1" che è una chiave nella tabella Control sarà nel formato "DialogName; ControlName", dove DialogName è il valore nella tabella Dialog_ e ControlName è il valore nella colonna Control. Per sostituire solo ControlName, la stringa di sostituzione [=Item1; 2] deve essere usato.
Osservazioni
La tabella ModuleSubstition viene usata da Moduli di merge configurabili. Mergemod.dll versione 2.0 o successiva è necessario per creare un modulo di merge configurabile.
Per garantire la compatibilità con le versioni di Mergemod.dll precedenti alla versione 2.0, la tabella moduleConfiguration e le tabelle ModuleSubstitution devono essere incluse nella tabella ModuleIgnoreTable di ogni modulo.