Udostępnij za pośrednictwem


Praca z typem danych XML w aplikacji

W tym temacie opisano opcje, które są dostępne do pracy z xml Typ danych w aplikacji.Temat zawiera następujące informacje:

  • Obsługa XML z xml kolumna typu przy użyciu ADO i SQL Server Native Client

  • Obsługa XML z xml typu kolumna przy użyciu ADO.NET

  • Obsługa xml Wpisz parametry przy użyciu ADO.NET

Obsługa XML z xml typu kolumny przy użyciu ADO i SQL Server Native Client

Użycie składników MDAC w celu uzyskania dostępu typy i funkcje wprowadzone w SQL Server 2005, należy ustawić DataTypeCompatibility właściwość inicjowania połączenia ADO ciąg.

Na przykład, następujący przykład Visual Basic Scripting Edition (VBScript) przedstawia wyniki kwerend xml Typ danych kolumna, Demographics, Sales.Store tabela AdventureWorks2008R2 przykładowej bazy danych.W szczególności kwerenda wyszukuje wartość wystąpienie tej kolumna wiersza gdzie CustomerID jest równa 3.

Const DS = "MyServer"
Const DB = "AdventureWorks2008R2"

Set objConn = CreateObject("ADODB.Connection")
Set objRs = CreateObject("ADODB.Recordset")

CommandText = "SELECT Demographics" & _
              " FROM Sales.Store" & _
              " INNER JOIN Sales.Customer" & _
              " ON Sales.Store.BusinessEntityID = sales.customer.StoreID" & _
              " WHERE Sales.Customer.CustomerID = 3" & _
              " OR Sales.Customer.CustomerID = 4"
                   
ConnectionString = "Provider=SQLNCLI10" & _
                   ";Data Source=" & DS & _
                   ";Initial Catalog=" & DB & _
                   ";Integrated Security=SSPI;" & _
                   "DataTypeCompatibility=80"

'Connect to the data source.
objConn.Open ConnectionString

'Execute command through the connection and display
Set objRs = objConn.Execute(CommandText)

Dim rowcount
rowcount = 0
Do While Not objRs.EOF
   rowcount = rowcount + 1
   MsgBox "Row " & rowcount & _
           vbCrLf & vbCrLf & objRs(0)
   objRs.MoveNext
Loop

'Clean up.
objRs.Close
objConn.Close
Set objRs = Nothing
Set objConn = Nothing

W tym przykładzie przedstawiono sposób zestaw zgodności właściwości typu danych.Domyślnie jest to zestaw 0 podczas korzystania z SQL Server macierzystego klienta.Po ustawieniu wartości 80, SQL Server spowoduje, że dostawca Native Client xml i typ zdefiniowany przez użytkownika kolumny pojawiają się jako SQL Server 2000 typów danych.Byłoby to DBTYPE_WSTR i DBTYPE_BYTES, odpowiednio.

SQL ServerNative Client musi być również zainstalowany na komputerze klienckim i połączenie ciąg należy określić go jako dostawca danych z "Provider=SQLNCLI10;...".

Aby przetestować przykład

  1. Sprawdź, czy SQL Server Native klient jest zainstalowany i że później 2.6.0or MDAC jest dostępne na komputerze klienckim.

    Aby uzyskać więcej informacji, zobacz SQL Server 2008 R2 Native Client Programming.

  2. Sprawdź, czy AdventureWorks2008R2 przykładowej bazy danych w SQL Server jest zainstalowany.

    W tym przykładzie wymaga AdventureWorks2008R2 przykładowej bazy danych.Aby uzyskać więcej informacji, zobacz Zagadnienia dotyczące instalowania przykładów i przykładowych baz danych programu SQL Server.

  3. Kopiowanie kodu pokazano wcześniej w tym temacie i Wklej kod do edytora tekstu lub kodu.Zapisz plik jako HandlingXmlDataType.vbs.

  4. Zmodyfikuj skrypt wymagane dla sieci SQL Server instalacji i zapisać zmiany.

    Na przykład, gdy MyServer jest określony, należy go albo zastąpić (local) lub rzeczywistą nazwę serwera, na którym SQL Server jest zainstalowany.

  5. Uruchom HandlingXmlDataType.vbs i wykonać skryptu.

Wyniki powinny być podobne do następujących przykładowych danych wyjściowych:

Row 1

<StoreSurvey xmlns="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey">
  <AnnualSales>1500000</AnnualSales>
  <AnnualRevenue>150000</AnnualRevenue>
  <BankName>Primary International</BankName>
  <BusinessType>OS</BusinessType>
  <YearOpened>1974</YearOpened>
  <Specialty>Road</Specialty>
  <SquareFeet>38000</SquareFeet>
  <Brands>3</Brands>
  <Internet>DSL</Internet>
  <NumberEmployees>40</NumberEmployees>
</StoreSurvey>

Row 2

<StoreSurvey xmlns="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/StoreSurvey">
  <AnnualSales>300000</AnnualSales>
  <AnnualRevenue>30000</AnnualRevenue>
  <BankName>United Security</BankName>
  <BusinessType>BM</BusinessType>
  <YearOpened>1976</YearOpened>
  <Specialty>Road</Specialty>
  <SquareFeet>6000</SquareFeet>
  <Brands>2</Brands>
  <Internet>DSL</Internet>
  <NumberEmployees>5</NumberEmployees>
</StoreSurvey>

Obsługa XML z typem kolumny przy użyciu ADO w pliku xml.NET

To handle XML from an xml data type column by using ADO.NET and the Microsoft .NET Framework you can use the standard behavior of the SqlCommand class.Na przykład xml danych typu kolumna i jego wartości, które mogą być pobierane w taki sam sposób dowolnej kolumna SQL są pobierane za pomocą SqlDataReader.Jednakże jeśli chcesz pracować z zawartością xml kolumna Typ danych jako XML, najpierw trzeba przypisać zawartość, aby XmlReader typu.

For more information and example code, see "XML Column Values in a Data Reader" in the Microsoft .NET Framework 2.0 SDK documentation.

Obsługa xml kolumnę Typ parametrów przy użyciu ADO.NET

Aby obsługiwać typ danych xml jako parametr przekazano w ADO.NET i .NET Framework, można podać wartość jako wystąpienie SqlXml typu danych.Zaangażowane nie specjalnej obsługi, ponieważ xml Typ danych kolumny w SQL Server może zaakceptować wartości parametrów w taki sam sposób jak inne kolumny i typy danych, takie jak string lub integer.

For more information and example code, see "XML Values as Command Parameters" in the Microsoft .NET Framework 2.0 SDK documentation.