Utilizzo di dati XML nelle applicazioniUse XML Data in Applications

Questo argomento descrive le opzioni disponibili per l'uso del tipo di dati xml nelle applicazioni.This topic describes the options that are available to you for working with the xml data type in your application. Vengono fornite informazioni sugli aspetti seguenti:The topic includes information about the following:

  • Gestione di dati XML da una colonna di tipo xml con ADO e SQL ServerSQL Server Native ClientHandling XML from an xml type column by using ADO and SQL ServerSQL Server Native Client

  • Gestione di dati XML da una colonna di tipo xml con ADO.NETHandling XML from an xml type column by using ADO.NET

  • Gestione del tipo xml nei parametri con ADO.NETHandling xml type in parameters by using ADO.NET

Gestione di XML da una colonna di tipo xml utilizzando ADO e SQL Server Native ClientHandling XML from an xml Type Column by Using ADO and SQL Server Native Client

Per usare i componenti MDAC e accedere alle funzionalità e ai tipi introdotti in SQL Server 2005SQL Server 2005, è necessario impostare la proprietà di inizializzazione DataTypeCompatibility nella stringa di connessione di ADO.To use MDAC components to access the types and features that were introduced in SQL Server 2005SQL Server 2005, you must set the DataTypeCompatibility initialization property in the ADO connection string.

L'esempio di codice Visual Basic Scripting Edition (VBScript) seguente illustra i risultati di una query su una colonna di dati di tipo xml , Demographicscontenuta nella tabella Sales.Store del database di esempio AdventureWorks2012 .For example, the following Visual Basic Scripting Edition (VBScript) sample shows the results of querying an xml data type column, Demographics, in the Sales.Store table of the AdventureWorks2012 sample database. Questa particolare query cerca il valore di istanza della colonna per la riga dove CustomerID è uguale a 3.Specifically, the query looks for the instance value of this column for the row where the CustomerID is equal to 3.

Const DS = "MyServer"  
Const DB = "AdventureWorks2012"  

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=SQLNCLI11" & _  
                   ";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  

Questo esempio illustra come impostare la proprietà di compatibilità del tipo di dati.This example shows how to set the data type compatibility property. Per impostazione predefinita, questa proprietà è impostata su 0 quando si utilizza SQL ServerSQL Server Native Client.By default, this is set to 0 when you are using SQL ServerSQL Server Native Client. Se si imposta il valore su 80, il provider SQL ServerSQL Server Native Client fa in modo che le colonne di tipo xml e di tipo definito dall'utente appaiano come tipi di dati SQL Server 2000SQL Server 2000 .If you set the value to 80, the SQL ServerSQL Server Native Client provider will make xml and user-defined type columns appear as SQL Server 2000SQL Server 2000 data types. Vale a dire: rispettivamente DBTYPE_WSTR e DBTYPE_BYTES.This would be DBTYPE_WSTR and DBTYPE_BYTES, respectively.

SQL ServerSQL Server Native Client deve essere installato anche nel computer client e la stringa di connessione deve specificare che venga usato come provider di dati tramite "Provider=SQLNCLI11;...". Native Client must also be installed on the client computer and the connection string must specify it for use as the data provider with "Provider=SQLNCLI11;...".

Per testare l'esempioTo test this example

  1. Verificare che SQL ServerSQL Server Native Client sia installato e che MDAC 2 versione 6.0, o una versione successiva, sia installato sul computer client.Verify that the SQL ServerSQL Server Native Client is installed and that MDAC 2.6.0or later is available on the client computer.

    Per altre informazioni, vedere Programmazione in SQL Server Native Client.For more information, see SQL Server Native Client Programming.

  2. Verificare che il database di esempio AdventureWorks2012AdventureWorks2012 in SQL ServerSQL Server sia installato.Verify that the AdventureWorks2012AdventureWorks2012 sample database in SQL ServerSQL Server is installed.

    Questo esempio richiede il database di esempio AdventureWorks2012AdventureWorks2012 .This example requires the AdventureWorks2012AdventureWorks2012 sample database.

  3. Copiare il codice riportato precedentemente in questo argomento nel proprio editor di testo o di codice.Copy the code shown previously in this topic and paste the code into your text or code editor. Salvare il file col nome HandlingXmlDataType.vbs.Save the file as HandlingXmlDataType.vbs.

  4. Modificare lo script come necessario per l'installazione di SQL ServerSQL Server e salvare le modifiche.Modify the script as required for your SQL ServerSQL Server installation and save your changes.

    Ad esempio, la stringa MyServer va sostituita con (local) o con il nome effettivo del server sul quale è installato SQL ServerSQL Server .For example, where MyServer is specified, you should replace it with either (local) or the actual name of the server on which SQL ServerSQL Server is installed.

  5. Eseguire HandlingXmlDataType.vbs e lo script.Run HandlingXmlDataType.vbs and execute the script.

    Si dovrebbe ottenere un risultato simile a quello riportato di seguito:The results should be similar to the following sample output:

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>  

Gestione di dati XML da una colonna di tipo xml utilizzando ADO.NETHandling XML from an xml Type Column by Using ADO.NET

Per gestire dati XML da una colonna di dati di tipo xml tramite ADO.NET e MicrosoftMicrosoft .NET Framework.NET Framework è possibile usare il comportamento standard della classe SqlCommand .To handle XML from an xml data type column by using ADO.NET and the MicrosoftMicrosoft .NET Framework.NET Framework you can use the standard behavior of the SqlCommand class. Ad esempio, una colonna con tipo di dati xml e i suoi valori possono essere recuperati in modo analogo a qualsiasi colonna SQL usando un SqlDataReader. Se tuttavia si vuole usare il contenuto di una colonna con tipo di dati xml come XML, sarà prima necessario assegnarne il contenuto a un tipo XmlReader .For example, an xml data type column and its values can be retrieved in the same way any SQL column is retrieved by using a SqlDataReader.However, if you want to work with the contents of an xml data type column as XML, you will first have to assign the contents to an XmlReader type.

Per altre informazioni e codici di esempio, vedere "XML Column Values in a Data Reader" (Valori delle colonne XML in un lettore di dati) nella documentazione di MicrosoftMicrosoft .NET Framework 2.0.NET Framework 2.0 SDK.For more information and example code, see "XML Column Values in a Data Reader" in the MicrosoftMicrosoft .NET Framework 2.0.NET Framework 2.0 SDK documentation.

Gestione di una colonna di tipo xml in parametri utilizzando ADO.NETHandling an xml Type Column in Parameters by Using ADO.NET

Per gestire un tipo di dati xml passato come parametro in ADO.NET e .NET Framework.NET Framework, è possibile specificare il valore come un'istanza del tipo di dati SqlXml .To handle an xml data type passed as a parameter in ADO.NET and the .NET Framework.NET Framework, you can supply the value as an instance of the SqlXml data type. Non è necessaria una gestione particolare perché le colonne di tipo di dati xml in SQL ServerSQL Server possono accettare valori di parametro in modo analogo ad altre colonne e tipi di dati, ad esempio string o integer.No special handling is involved, because xml data type columns in SQL ServerSQL Server can accept parameter values in the same way as other columns and data types, such as string or integer.

Per altre informazioni e codici di esempio, vedere "XML Values as Command Parameters" (Valori XML come parametri di comando) nella documentazione di MicrosoftMicrosoft .NET Framework 2.0.NET Framework 2.0 SDK.For more information and example code, see "XML Values as Command Parameters" in the MicrosoftMicrosoft .NET Framework 2.0.NET Framework 2.0 SDK documentation.

Vedere ancheSee Also

Dati XML (SQL Server)XML Data (SQL Server)