Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Egy annotált XSD sémában, amikor egy attribútumot (vagy elemet) egy BLOB oszlophoz jelölik a Microsoft SQL Serverben, az adatokat Base 64-es kódolt formátumban, XML-en belül térik vissza.
Ha egy hivatkozást (egy URI-t) szeretnél visszaadni, amelyet később használhatsz a BLOB adatok bináris formátumú lekérésére, megadd az sql:encode annotációt. A sql:encode egy egyszerű típusú attribútumon vagy elemen is megadhatod.
Megadjuk az sql:encode annotációt, hogy jelezze, hogy a mező értéke helyett egy URL-t kell küldeni. a sql:encode a fő kulcstól függ, amely egyetlen kiválasztást generál az URL-ben. A fő kulcs a sql:key-fields annotációval határozható meg.
A sql:encode annotációhoz hozzárendelhető az "url" vagy az "default" érték. Az "default" érték Base 64-szel kódolt formátumban adja vissza az adatokat.
A sql:encode annotáció nem használható sql:use-cdata vagy az ID, IDREF, IDREFS, NMTOKEN vagy NMTOKEN attribútumtípusokon. XSD fix attribútummal sem használható.
Megjegyzés:
A BLOB típusú oszlopokat nem használhatják kulcs vagy idegen kulcs részeként.
Példák
A következő példák alapján működő minták létrehozásához bizonyos követelményeknek kell megfelelned. További információért lásd: Az SQLXML futtatási követelmények példái.
A. A sql:encode meghatározása, hogy URL-hivatkozást kapjunk a BLOB adatokhoz
Ebben a példában a leképezési séma a LargePhoto attribútumon sql:encode-ot jelöli meg, hogy egy adott termékfotóhoz tartozó URI hivatkozást kapjon (ahelyett, hogy a bináris adatokat Base 64-es kódolt formátumban kérné).
<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>
Egy minta-XPath lekérdezés tesztelése a sémához
Másold le a fenti sémakódot, és illesztsd be egy szövegfájlba. Mentse el a fájlt sqlEncode.xml.
Másold le a következő sablont, és illesztsd be egy szövegfájlba. Mentsd a fájlt sqlEncodeT.xml-ként ugyanabba a könyvtárba, ahol sqlEncode.xmlmentetted.
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql"> <sql:xpath-query mapping-schema="sqlEncode.xml"> /ProductPhoto[@ProductPhotoID=100] </sql:xpath-query> </ROOT>A leképezési sémához (sqlEncode.xml) megadott könyvtári út viszonyítja azt a könyvtárat, ahol a sablon mentő. Abszolút út is meghatározható, például:
mapping-schema="C:\SqlXmlTest\sqlEncode.xml"Hozd létre és használd az SQLXML 4.0 Test Scriptet (Sqlxml4test.vbs) a sablon végrehajtásához.
További információ: SqlXML 4.0-lekérdezések végrehajtása az ADO használatával.
Ez az eredmény:
<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
<ProductPhoto ProductPhotoID="100"
LargePhoto="dbobject/Production.ProductPhoto[@ProductPhotoID="100"]/@LargePhoto" />
</ROOT>