Aracılığıyla paylaş


Yönergeleri ve xml Updategrams (sqlxml 4.0) kısıtlamaları

xml updategrams kullanarak aşağıdakileri unutmayın:

  • Yalnızca tek bir çift ile ekleme işlemi için updategram kullanıyorsanız, <before>ve <after>blok, <before>Blok ihmal. Tersine, halinde silme işlemi, <after>Blok ihmal.

  • Çoklu ile bir updategram kullanıyorsanız, <before>ve <after>engeller <sync>etiket, hem de <before>blok ve <after>forma blokları belirtilmelidir <before>ve <after>çiftleri.

  • Bir updategram güncelleştirmeleri xml şeması tarafından sağlanan xml Görünümü uygulanır. Bu nedenle, başarılı olmak varsayılan eşleme için updategram şema dosyasının adını belirtmelisiniz veya dosya adı sağlanmazsa, veritabanı tablo ve sütun adlarını öğe ve öznitelik adları eşleşmelidir.

  • sqlxml 4.0 gerektirir: tüm sütun değerleri bir updategram açıkça alt öğeleri xml Görünümü oluşturmak için sağlanan şema (xdr veya xsd) eşlenmelidir. Bu davranış bu ima yabancı anahtar bir parçası olarak, şema eşlenen bir sütun için bir değer izin sqlxml önceki sürümlerinden farklı bir sql:relationshipaçıklama. (Not Bu değişiklik için alt öğeleri, birincil anahtar değerleri değer alt öğesi açıkça belirtilirse, sqlxml 4.0 oluşmaya yayılmasını etkilemez.

  • İkil sütun verileri değiştirmek için bir updategram kullanıyorsanız (gibi SQL Server  imageveri türü), hangi eşleme şema sağlamalısınız SQL Serververi türü (örneğin, sql:datatype="image") ve xml veri türü (örneğin, dt:type="binhex"veya dt:type="binbase64) belirtilmeli. İkil sütun verileri updategram belirtilmelidir; sql:url-encodetarafından updategram eşleme şemasında belirtilen ek açıklama gözardı edilir.

  • Ne zaman sen yazma bir xsd şeması için belirlediğiniz değeri ise sql:relationveya sql:fieldek açıklama içeren bir boşluk karakteri gibi özel bir karakter (örneğin, "Sipariş Ayrıntıları" olarak Tablo adı), bu değer (örneğin, "[Sipariş Ayrıntıları]") ayraç içine alınması gerekir.

  • Updategrams kullanırken, zinciri ilişkileri desteklenmez. Tablo b kullanan bir zincir ilişkisi ilişkili tablolar a ve c, örneğin, aşağıdaki hata çalıştırın ve updategram yürütme girişiminde bulunulduğunda oluşur:

    There is an inconsistency in the schema provided.
    
    There is an inconsistency in the schema provided.
    

    Şema ve updategram doğru ve geçerli biçimlendirilmiş aksi takdirde bile, bir zincir ilişkisi varsa, bu hata ortaya çıkar.

  • Updategrams değil izin geçen imageyazın veri parametreleri olarak güncelleştirmeleri sırasında.

  • Büyük ikili nesne (blob) türleri gibi text/ntextve görüntüleri de kullanılmamalıdır <before>updategrams ile çalışırken onları eşzamanlılık denetimi kullanmak için bu yer alacak çünkü blok. Bu sorunlara neden olabilir SQL Serverkarşılaştırma blob türü için belirtilen sınırlamalar yüzünden. Örneğin, benzer anahtar kelime where yan tümcesinde sütunlar arasında karşılaştırmak için kullanılan textveri türü; Ancak, karşılaştırmalar, blob türleri veri boyutu 8 K'dan büyük olduğu başarısız olur.

  • Özel karakter ntextveri sorunlara neden olabilir sqlxml 4.0 ile karşılaştırma için blob türleri sınırlamalar yüzünden. Örneğin, "[Serializable]" kullanımı içinde <before>Blok sütunu kontrol eşzamanlılık kullanıldığında bir updategrams ntexttürü aşağıdaki sqloledb hata açıklaması ile başarısız olur:

    Empty update, no updatable rows found   Transaction aborted
    
    Empty update, no updatable rows found   Transaction aborted
    

Ayrıca bkz.

Başvuru

Updategram Güvenlik etkenleri (sqlxml 4.0)