Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
W tym artykule opisano opcje, które są dostępne do pracy z typem danych XML w aplikacji. Artykuł zawiera informacje o następujących kwestiach:
Obsługa kodu XML z kolumny typu xml przy użyciu interfejsu ADO i klienta natywnego programu SQL Server
Obsługa kodu XML z kolumny typu xml przy użyciu ADO.NET
Obsługa typu xml w parametrach przy użyciu ADO.NET
Obsługa kodu XML z kolumny typu xml przy użyciu oprogramowania ADO i klienta natywnego programu SQL Server
Aby używać składników MDAC do uzyskiwania dostępu do typów i funkcji, które zostały wprowadzone w programie SQL Server 2005 (9.x), należy ustawić właściwość inicjowania DataTypeCompatibility w parametrach połączenia ADO.
Na przykład w poniższym przykładzie Visual Basic Scripting Edition (VBScript) przedstawiono wyniki wykonywania zapytań względem kolumny typu danych XML w DemographicsSales.Store tabeli przykładowej AdventureWorks2025 bazy danych. W szczególności zapytanie wyszukuje wartość wystąpienia tej kolumny dla wiersza, w którym CustomerID jest równe 3.
Const DS = "MyServer"
Const DB = "AdventureWorks2022"
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=MSOLEDBSQL" & _
";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 pokazano, jak ustawić właściwość zgodności typu danych. Domyślnie jest to wartość 0, gdy używasz klienta natywnego programu SQL Server. Jeśli ustawisz wartość 80, dostawca klienta natywnego programu SQL Server ustawi kolumny xml i typu zdefiniowanego przez użytkownika będą wyświetlane jako typy danych programu SQL Server 2000 (8.x). Byłoby to odpowiednio DBTYPE_WSTR i DBTYPE_BYTES.
Uwaga / Notatka
Klient natywny SQL Servera (SNAC) nie jest dostarczany z:
- SQL Server 2022 (16.x) i nowsze wersje
- SQL Server Management Studio 19 i nowsze wersje
Program SQL Server Native Client (SQLNCLI lub SQLNCLI11) oraz starszy dostawca microsoft OLE DB dla programu SQL Server (SQLOLEDB) nie są zalecane w przypadku tworzenia nowych aplikacji.
W przypadku nowych projektów użyj jednego z następujących sterowników:
- sterownik Microsoft ODBC dla programu SQL Server
- sterownik Microsoft OLE DB dla programu SQL Server
W przypadku programu SQLNCLI dostarczanego jako składnik aparatu bazy danych programu SQL Server (wersje 2012–2019), proszę sprawdzić wyjątek cyklu wsparcia .
Przetestuj ten przykład
Sprawdź, czy klient natywny programu SQL Server jest zainstalowany i czy program MDAC 2.6.0or jest później dostępny na komputerze klienckim.
Aby uzyskać więcej informacji, zobacz SQL Server Native Client Programming (Programowanie natywnych klientów programu SQL Server).
Sprawdź, czy przykładowa
AdventureWorks2025baza danych w programie SQL Server jest zainstalowana.W tym przykładzie jest wymagana przykładowa
AdventureWorks2025baza danych.Skopiuj kod pokazany wcześniej w tym artykule i wklej go do tekstu lub edytora kodu. Zapisz plik jako HandlingXmlDataType.vbs.
Zmodyfikuj skrypt zgodnie z wymaganiami instalacji programu SQL Server i zapisz zmiany.
Na przykład, gdzie
MyServerjest określone, należy zastąpić je(local)lub rzeczywistą nazwą serwera, na którym zainstalowano SQL Server.Uruchom skrypt HandlingXmlDataType.vbs i wykonaj go.
Wyniki powinny być podobne do następujących przykładowych danych wyjściowych:
Row 1
<StoreSurvey xmlns="http://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="http://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 kodu XML z kolumny typu xml przy użyciu ADO.NET
Aby obsłużyć kod XML z kolumny typu danych XML przy użyciu ADO.NET i programu Microsoft .NET Framework, możesz użyć standardowego zachowania klasy SqlCommand . Na przykład kolumna typu danych XML i jej wartości można pobrać w taki sam sposób, jak każda kolumna SQL jest pobierana przy użyciu elementu SqlDataReader. Jeśli jednak chcesz pracować z zawartością kolumny typu danych XML jako XML , musisz najpierw przypisać zawartość do typu XmlReader .
Aby uzyskać więcej informacji i przykładowy kod, zobacz "Xml Column Values in a Data Reader" (Wartości kolumn XML w czytniku danych) w dokumentacji zestawu MICROSOFT .NET Framework 2.0 SDK.
Obsługa kolumny typu xml w parametrach przy użyciu ADO.NET
Aby obsłużyć typ danych XML przekazany jako parametr w ADO.NET i programie .NET Framework, możesz podać wartość jako wystąpienie typu danych SqlXml . Nie ma specjalnej obsługi, ponieważ kolumny typu danych XML w programie SQL Server mogą akceptować wartości parametrów w taki sam sposób, jak inne kolumny i typy danych, takie jak ciąg lub liczba całkowita.
Aby uzyskać więcej informacji i przykładowy kod, zobacz "Wartości XML jako parametry polecenia" w dokumentacji zestawu MICROSOFT .NET Framework 2.0 SDK.