Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
DiffGram, veri öğelerinin geçerli ve özgün sürümlerini tanımlayan bir XML biçimidir. , DataSet içeriklerini yüklemek ve kalıcı hale getirmek ve içeriğini ağ bağlantısı üzerinden aktarım için seri hale getirmek için DiffGram biçimini kullanır. bir DataSet DiffGram olarak yazıldığında, DataSet içeriğini, şema Current haricinde, hem Original hem de Current satır sürümlerindeki sütun değerleri, satır hata bilgileri ve satır sırası da dahil olmak üzere doğru bir biçimde yeniden oluşturmak için gerekli tüm bilgilerle DiffGram'ı doldurur.
XML Web hizmetinden bir DataSet gönderme ve alma sırasında, DiffGram biçimi örtük olarak kullanılır. Buna ek olarak, XML'den DataSet içeriğini ReadXml yöntemini kullanarak yüklerken veya DataSet içeriğini XML'de WriteXml yöntemini kullanarak yazarken, içeriğin DiffGram olarak okunmasını veya yazılmasını belirtebilirsiniz. Daha fazla bilgi için bkz . XML'den DataSet Yükleme ve DataSet İçeriğini XML Verileri Olarak Yazma.
DiffGram biçimi öncelikle .NET Framework tarafından içeriğinin serileştirme biçimi olarak kullanılırken, Microsoft SQL Server veritabanındaki tablolardaki verileri değiştirmek için DataSetDiffGrams'ı da kullanabilirsiniz.
Tüm tabloların içeriği bir öğeye yazılarak bir <diffgram> Diffgram oluşturulur.
Bir Diffgram oluşturmak için
Kök tabloların (yani üst öğe içermeyen tabloların) listesini oluşturun.
Listedeki her tablo ve alt öğeleri için, ilk Diffgram bölümündeki tüm satırların geçerli sürümünü yazın.
DataSet içindeki her tablo için,
<before>bölümünde varsa tüm satırların özgün sürümünün Diffgram'a yazılmasını sağlayın.Hata içeren satırlar için, hata içeriğini
<errors>Diffgram'ın bölümüne yazın.
Bir Fark Birimi XML dosyasının başından sonuna kadar sırayla işlenir.
Bir Diffgram'ı işlemek için
Diffgram'ın satırların geçerli sürümünü içeren ilk bölümünü işleyin.
İkinci veya
<before>bölümü, değiştirilen ve silinen satırların özgün satır sürümünü içeren kısmı işleyin.Not
Bir satır silinmiş olarak işaretlenirse, silme işlemi geçerli
Cascadeöğesinin özelliğine bağlı olarak satırın DataSet alt öğelerini de silebilir.<errors>bölümünü işleyin. Bu bölümdeki her öğe için belirtilen satır ve sütun için hata bilgilerini ayarlayın.
Not
Diffgram olarak ayarlarsanız XmlWriteMode , hedefin DataSet içeriği ve özgün DataSet içerik farklı olabilir.
DiffGram Biçimi
DiffGram biçimi üç bölüme ayrılır: geçerli veriler, özgün (veya "önce") veriler ve aşağıdaki örnekte gösterildiği gibi hatalar bölümü.
<?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>
DiffGram biçimi aşağıdaki veri bloklarından oluşur:
< DataInstance> Bu öğenin adı olan DataInstance, bu belgelerde açıklama amacıyla kullanılır. DataInstance öğesi bir DataSet veya satırını DataTabletemsil eder. Öğesi DataInstance yerine veya DataSetadını DataTable içerir. DiffGram biçiminin bu bloğu, değiştirilmiş olsun veya olmasın geçerli verileri içerir. Değiştirilen bir öğe veya satır, diffgr:hasChanges ek açıklamasıyla tanımlanır.
<diffgr:before> DiffGram biçiminin bu bloğu bir satırın özgün sürümünü içerir. Bu bloktaki öğeler, diffgr:id ek açıklaması kullanılarak DataInstance bloğundaki öğelerle eşleştirilir.
<diffgr:errors> DiffGram biçiminin bu bloğu DataInstance bloğundaki belirli bir satıra ait hata bilgilerini içerir. Bu bloktaki öğeler, diffgr:id ek açıklaması kullanılarak DataInstance bloğundaki öğelerle eşleştirilir.
DiffGram Ek Açıklamaları
DiffGram'lar, içindeki farklı satır sürümlerini veya hata bilgilerini DataSettemsil eden farklı DiffGram bloklarındaki öğeleri ilişkilendirmek için çeşitli ek açıklamalar kullanır.
Aşağıdaki tabloda urn:schemas-microsoft-com:xml-diffgram-v1 DiffGram ad alanında tanımlanan DiffGram ek açıklamaları açıklanmaktadır.
| Ek Açıklama | Açıklama |
|---|---|
id |
ve <diffgr:before> bloklarındaki <diffgr:errors> öğeleri < bloğundaki öğelerle > eşleştirmek için kullanılır. diffgr:id ek açıklamasına sahip değerler biçimindedir[TableName][RowIdentifier]. Örneğin: <Customers diffgr:id="Customers1">. |
parentId |
DataInstance <hangi öğenin geçerli öğenin üst öğesi olduğunu tanımlar. diffgr:parentId ek açıklamasına sahip değerler biçimindedir[TableName][RowIdentifier]. Örneğin: <Orders diffgr:parentId="Customers1">. |
hasChanges |
DataInstance <bir satırı değiştirildiği şekilde tanımlar. Belirli bir hasChanges açıklama aşağıdaki iki değerden birine sahip olabilir:Eklenen Bir Added satırı tanımlar.Değiştirilmiş Modified Blokta Original satır sürümü içeren bir <diffgr:before> satır tanımlar. Satırların Deleted blokta Original bir <diffgr:before> satır sürümü olacağını, ancak < bloğunda > ek açıklamalı öğe olmadığını unutmayın. |
hasErrors |
RowError ile DataInstance<bir satırı tanımlar. Hata öğesi bloğuna <diffgr:errors> yerleştirilir. |
Error |
Belirli bir öğenin metnini RowError içerisindeki <diffgr:errors> blokta içerir. |
, DataSet içeriğini DiffGram olarak okurken veya yazarken ek ek açıklamalar içerir. Aşağıdaki tabloda urn:schemas-microsoft-com:xml-msdata ad alanında tanımlanan bu ek açıklamalar açıklanmaktadır.
| Ek Açıklama | Açıklama |
|---|---|
| RowOrder | Özgün verilerin satır sırasını korur ve belirli DataTablebir içindeki satırın dizinini tanımlar. |
| Gizli | Bir sütunu ColumnMapping olarak ayarlanmış bir özellik olarak tanımlar. özniteliği msdata:hidden[ColumnName]="value" biçiminde yazılır. Örneğin: <Customers diffgr:id="Customers1" msdata:hiddenContactTitle="Owner">.Gizli sütunların yalnızca veri içeriyorsa DiffGram özniteliği olarak yazıldığını unutmayın. Aksi takdirde, bunlar yoksayılır. |
Örnek DiffGram
Aşağıda DiffGram biçimine bir örnek gösterilmiştir. Bu örnek, değişiklikler işlenmeden önce tablodaki bir satıra yapılan güncelleştirmenin sonucunu gösterir. CustomerID değeri "ALFKI" olan satır değiştirildi, ancak güncelleştirilmedi. Sonuç olarak, diffgr:hasErrors="true" ile ek açıklama yapılmış ve blokta <diffgr:errors> ile ilgili bir öğe bulunmaktadır.
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<CustomerDataSet>
<Customers diffgr:id="Customers1" msdata:rowOrder="0" diffgr:hasChanges="modified">
<CustomerID>ALFKI</CustomerID>
<CompanyName>New Company</CompanyName>
</Customers>
<Customers diffgr:id="Customers2" msdata:rowOrder="1" diffgram:hasErrors="true">
<CustomerID>ANATR</CustomerID>
<CompanyName>Ana Trujillo Emparedados y Helados</CompanyName>
</Customers>
<Customers diffgr:id="Customers3" msdata:rowOrder="2">
<CustomerID>ANTON</CustomerID>
<CompanyName>Antonio Moreno Taquera</CompanyName>
</Customers>
<Customers diffgr:id="Customers4" msdata:rowOrder="3">
<CustomerID>AROUT</CustomerID>
<CompanyName>Around the Horn</CompanyName>
</Customers>
</CustomerDataSet>
<diffgr:before>
<Customers diffgr:id="Customers1" msdata:rowOrder="0">
<CustomerID>ALFKI</CustomerID>
<CompanyName>Alfreds Futterkiste</CompanyName>
</Customers>
</diffgr:before>
<diffgr:errors>
<Customers diffgr:id="Customers2" diffgr:Error="An optimistic concurrency violation has occurred for this row."/>
</diffgr:errors>
</diffgr:diffgram>