BLOB bilgilerini kullanarak sql URL başvurular isteyen: (SQLXML 4.0) kodlar.
Açıklama eklenmiş bir XSD şeması, bir öznitelik (veya öğeyi tıklattığınızda) bir BLOB sütun Microsoft eşleştirilir SQL Server, verileri XML içinde Base 64 ile kodlanmış biçimde döndürülür.
Verilere bir başvuru isterseniz (iade edilmesi için bir URI) daha kullanılabilir ikili biçimde BLOB verileri almak için belirttiğiniz sql:encode Ek açıklama. Belirtebilirsiniz sql:encode bir öznitelik veya öğe'basit türü.
Specify the sql:encode annotation to indicate that a URL to the field should be returned instead of the value of the field.sql:encode depends on the primary key to generate a singleton select in the URL.Birincil anahtar kullanılarak belirtilebilir sql:key-fields Ek açıklama.
The sql:encode annotation can be assigned the "url" or the "default" value."Varsayılan" değeri, veri Base 64 kodlu biçiminde döndürür.
The sql:encode annotation cannot be used with sql:use-cdata or on the ID, IDREF, IDREFS, NMTOKEN, or NMTOKENS öznitelik types. Bu da XSD ile kullanılabilir değil Sabit öznitelik.
Not
BLOB türü sütunlarındaki bir parçası olarak bir anahtarı veya yabancı anahtar olarak kullanılamaz.
Örnekler
Aşağıdaki örnekler kullanarak çalışma örnekleri oluşturmak için , belirli gereksinimleri karşılaması gerekir.Daha fazla bilgi için bkz:SQLXML örnekleri çalıştırma gereksinimleri.
C.SQL belirtme: URL başvuru BLOB verileri almak için kodlama
Bu örnekte, eşleme şemada belirtir. sql:encode üzerinde LargePhoto özniteliği URI başvurusu için (yerine biçiminde Base 64 ile kodlanmış ikili veri alınıyor) ürününün fotoğraf almak için.
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema">
<xsd:element name="ProductPhoto" sql:relation="Production.ProductPhoto"
sql:key-fields="ProductPhotoID" >
<xsd:complexType>
<xsd:attribute name="ProductPhotoID" type="xsd:int" />
<xsd:attribute name="LargePhoto" type="xsd:string" sql:encode="url" />
</xsd:complexType>
</xsd:element>
</xsd:schema>
Şemaya örnek bir XPath sorgusu sınamak için
Yukarıdaki şema kodunu kopyalayıp, bir metin dosyasına yapıştırın.Dosyayı sqlEncode.xml kaydedin.
Şu şablonu kopyalayıp, bir metin dosyasına yapıştırın.Dosyayı sqlEncodeT.xml sqlEncode.xml kaydettiğiniz aynı dizine kaydedin.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="sqlEncode.xml"> /ProductPhoto[@ProductPhotoID=100] </sql:xpath-query> </ROOT>
Eşleştirme şemasını (sqlEncode.xml) dizini belirtilen şablon kaydedildiği göreli dizinidir.Mutlak bir yol da, örneğin belirtilebilir:
mapping-schema="C:\SqlXmlTest\sqlEncode.xml"
Oluşturun ve SQLXML 4.0 sınama komut dosyası (Sqlxml4test.vbs) şablonu yürütmek için kullanın.
Daha fazla bilgi için bkz:ADO SQLXML yürütmek kullanarak 4.0 sorgular..
Bu sonucu oluşur:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<ProductPhoto ProductPhotoID="100"
LargePhoto="dbobject/Production.ProductPhoto[@ProductPhotoID="100"]/@LargePhoto" />
</ROOT>