Udostępnij przez


Pobieranie sql:overflow nieużywanej przy użyciu danych — pole (schematu XDR)

Important noteImportant Note:

W tym temacie jest włączony jako odwołanie w przypadku starszych aplikacji.Żadna praca przyszłe będą mogły wykonać tej funkcji.Należy unikać stosowania tej funkcji w nowej pracy rozwoju.Zamiast tego należy używać adnotacjami schematów XSD tworzenia widoków XML.Aby uzyskać więcej informacji zobaczWprowadzenie do adnotacjami schematy XSD (SQLXML 4.0).Istniejące schematy XDR adnotacjami można przekonwertować schematów XSD.Aby uzyskać więcej informacji zobaczKonwertowanie adnotacjami schematy XDR Equivalent schematy XSD (SQLXML 4.0).

Podczas wstawiania rekordów w bazie danych z dokumentem XML przy użyciu OPENXML, nieużywanej danych z dokumentu źródłowego XML mogą być przechowywane kolumna.Pobierania danych z bazy danych, za pomocą schematów adnotacjami, sql:overflow-field Atrybut można określić do identyfikacji kolumna w tabela, w którym przechowywany jest przepełnienie danych.

Następnie pobierane są to dane w następujący sposób:

  • Atrybuty przechowywane kolumna przepełnienie są dodawane do elementu zawierającego sql:overflow-field adnotacja.

  • Podelementy i ich potomkami przechowywane kolumna przepełnienie w bazie danych są dodawane jako podelementy po zawartości, która jest jawnie określona w schemacie (zlecenia nie jest zachowywany).

Przykłady

Aby utworzyć próbek pracy przy użyciu poniższych przykładach, musi spełniać określone wymagania.Aby uzyskać więcej informacji zobaczWymagania dotyczące uruchamianie SQLXML przykłady.

A.Określ sql:overflow — dla pole <ElementType> w schemacie XDR

W przykładzie zakłada się, w tej tabela nie istnieje w bazie danych tempdb:

USE tempdb
CREATE TABLE Customers2 (
CustomerID       VARCHAR(10), 
ContactName    VARCHAR(30), 
AddressOverflow    NVARCHAR(500))

GO
INSERT INTO Customers2 VALUES (
'ALFKI', 
'Joe',
'<Address>
  <Address1>Maple St.</Address1>
  <Address2>Apt. E105</Address2>
  <City>Seattle</City>
  <State>WA</State>
  <Zip>98147</Zip>
 </Address>')
GO

W tym przykładzie schematu mapowania pobiera nieużywanej dane przechowywane kolumna AddressOverflow tabela Customers2.The sql:overflow-field atrybut is specified on the <ElementType>.

<?xml version="1.0" ?>
<Schema xmlns="urn:schemas-microsoft-com:xml-data"
        xmlns:dt="urn:schemas-microsoft-com:datatypes"
        xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <ElementType name="Customers2" sql:overflow-field="AddressOverflow" >
    <AttributeType name="CustomerID" />
    <AttributeType name="ContactName" />

    <attribute type="CustomerID" />
    <attribute type="ContactName"/>
  </ElementType>
</Schema>

Do testowania kwerendy przykładowe wyrażenie XPath względem schematu

  1. Skopiować powyższy kod schematu i wkleić go do pliku tekstowego.Zapisz plik jako OverflowXdr.xml.

  2. Skopiuj następujący szablon i wkleić go do pliku tekstowego.Zapisz plik jako OverflowXdrT.xml w tym samym katalogu, w którym zapisano OverflowXdr.xml.

    <ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
      <sql:xpath-query mapping-schema="OverflowXdr.xml">
        Customers2
      </sql:xpath-query>
    </ROOT>
    

    To ścieżka do katalogu określonego dla mapowania schematu (OverflowXdr.xml) jest względna w stosunku do katalogu, w którym są zapisywane w szablonie.Ścieżka bezwzględna również można określić, na przykład:

    mapping-schema="C:\MyDir\OverflowXdr.xml"
    
  3. Tworzenie i używanie skryptu testu 4.0 SQLXML (Sqlxml4test.vbs) do wykonać tego szablonu.

    Aby uzyskać więcej informacji zobaczPrzy użyciu obiektu ADO do wykonywania SQLXML bada 4.0.

Poniżej znajduje się zestaw wyników:

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">
  <Customers2 CustomerID="ALFKI" ContactName="Joe">
    <Address1>Maple St.</Address1> 
    <Address2>Apt. E105</Address2> 
    <City>Seattle</City> 
    <State>WA</State> 
    <Zip>98147</Zip> 
  </Customers2>
</ROOT>