Wprowadzenie do DiffGrams w SQLXML 4.0
Ten temat zawiera krótkie wprowadzenie do DiffGrams.
W formacie DiffGram Format
Jest to ogólny format w formacie DiffGram:
<?xml version="1.0"?>
<diffgr:diffgram
xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"
xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DataInstance>
...
</DataInstance>
[<diffgr:before>
...
</diffgr:before>]
[<diffgr:errors>
...
</diffgr:errors>]
</diffgr:diffgram>
Format w formacie DiffGram składa się z tych bloków:
<DataInstance>
Nazwa tego elementu DataInstance, jest używany do celów wyjaśnienie w tej dokumentacji.Na przykład, jeśli w formacie DiffGram zostały wygenerowane z zestawu danych w programie .NET Framework, w wartości Nazwa właściwość do danych może być używany jako nazwa tego elementu.Blok ten zawiera wszystkie odpowiednie dane po zmianie, prawdopodobnie włącznie z danymi, który nie został zmodyfikowany.Logiki przetwarzania w formacie DiffGram ignoruje elementy znajdujące się w tym blok, dla których diffgr:hasChanges nie jest on określony.<diffgr: przed>
Ten opcjonalny blok zawiera oryginalnego wystąpienia rekordu (elementów), które musi zostać zaktualizowany lub usunięty.Wszystkie bazy danych tabele, które należy zmodyfikować (zaktualizowane lub usunięte) przez w formacie DiffGram musi pojawić się jako elementów najwyższego poziom w <przed> blok.<diffgr:errors>
Ten opcjonalny blok jest ignorowany przez logiki przetwarzania w formacie DiffGram.
W formacie DiffGram adnotacje
Adnotacje te są zdefiniowane w przestrzeni nazw w formacie DiffGram "urn: schemas - microsoft - com:xml - diffgram - 01":
Identyfikator
Ten atrybut jest używany do elementów w parą <przed> oraz <DataInstance> bloki.hasChanges
Wstaw lub operacji aktualizacji w formacie DiffGram należy określić ten atrybut z wartością dodaje or zmodyfikowane.Jeśli ten atrybut jest nieobecny, odpowiedni element w <DataInstance> jest ignorowany przez przetwarzanie logiki i aktualizacje nie są wykonywane. W przypadku pracy próbek zobacz Przykłady w formacie DiffGram (SQLXML 4.0).parentID
Ten atrybut jest używany do określania relacji nadrzędny podrzędność między elementami w w formacie DiffGram.Atrybut ten jest wyświetlany tylko w <przed> blok. Jest on używany przez SQLXML podczas stosowania aktualizacji.Relacji nadrzędny podrzędność jest używana przy określaniu kolejności, w którym przetwarzane są elementy w w formacie DiffGram.
Opis logiki przetwarzania w formacie DiffGram
Przetwarzanie logiki zastosowań w formacie DiffGram pewne zasady do ustalenia, czy operacja jest wstawiania, aktualizacji lub usuwania operacji.Zasady te są opisane w poniższej tabela.
Operacja |
Description |
|---|---|
Wstawianie |
Element w formacie DiffGram wskazuje operację wstawiania, gdy element zostanie wyświetlony w <DataInstance> blok, ale nie w odpowiadających im <przed> Blok oraz diffgr:hasChanges atrybut jest określony (diffgr:hasChanges = dodaje) w elemencie.W takim przypadek w formacie DiffGram wstawia wystąpienie rekordu, które określono w <DataInstance> blok do bazy danych. Jeśli diffgr:hasChanges atrybut nie zostanie określona, element jest ignorowany przez logiki przetwarzania i wstawiania nie jest wykonywane.W przypadku pracy próbek zobacz Przykłady w formacie DiffGram (SQLXML 4.0). |
Aktualizacja |
W formacie DiffGram wskazuje operację aktualizacji, jeśli brakuje elementu <przed> blok, dla których nie ma odpowiedniego elementu w <DataInstance> blok (to znaczy oba elementy mają diffgr:ID atrybutu z tą samą wartością) i diffgr:hasChanges atrybut jest określany za pomocą wartości zmodyfikowane w elemencie w <DataInstance> blok. Jeśli diffgr:hasChanges nie jest on określony dla elementu w <DataInstance> blok, zwracany jest błąd przez logiki przetwarzania. W przypadku pracy próbek zobacz Przykłady w formacie DiffGram (SQLXML 4.0). Jeśli diffgr:parentID określona w <przed> blok, relacji nadrzędny podrzędność elementów, które są określone przez parentID są używane przy określaniu kolejności, w którym rekordy są aktualizowane. |
Usuń |
Element w formacie DiffGram wskazuje operacji usuwania, gdy element zostanie wyświetlony w <przed> blok, ale nie w odpowiadających im <DataInstance> blok. W takim przypadek w formacie DiffGram usuwa wystąpienie rekordu określonym w <przed> blok z bazy danych. W przypadku pracy próbek zobacz Przykłady w formacie DiffGram (SQLXML 4.0). Jeśli diffgr:parentID określona w <przed> blokowanie relacji nadrzędny podrzędność elementów, które są określone przez parentID są używane przy określaniu kolejności, w którym rekordy są usuwane. |
Uwaga
Parametry nie mogą być przekazywane do DiffGrams.