응용 프로그램에서 XML 데이터 사용Use XML Data in Applications

이 항목에서는 응용 프로그램에서 xml 데이터 형식을 사용하기 위해 제공되는 옵션에 대해 설명합니다.This topic describes the options that are available to you for working with the xml data type in your application. 이 항목에는 다음에 대한 정보가 포함됩니다.The topic includes information about the following:

  • ADO 및 Native Client를 사용하여 xml SQL ServerSQL Server 유형의 열에서 XML 처리Handling XML from an xml type column by using ADO and SQL ServerSQL Server Native Client

  • ADO.NET을 사용하여 xml 유형의 열에서 XML 처리Handling XML from an xml type column by using ADO.NET

  • ADO.NET을 사용하여 매개 변수에서 xml 유형 처리Handling xml type in parameters by using ADO.NET

ADO 및 SQL Server Native Client를 사용하여 xml 유형의 열에서 XML 처리Handling XML from an xml Type Column by Using ADO and SQL Server Native Client

SQL Server 2005SQL Server 2005에서 제공된 유형 및 기능에 액세스하여 MDAC 구성 요소를 사용하려면 ADO 연결 문자열에 DataTypeCompatibility 초기화 속성을 설정해야 합니다.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.

예를 들어 다음 Visual Basic Scripting Edition(VBScript) 예제는 예제 데이터베이스의 테이블에서 Demographics라는 Sales.Store xml 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. 특히 이 쿼리는 이 열의 항목 값에서 CustomerID3인 행을 검색합니다.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  

이 예에서는 데이터 형식 호환성 속성을 설정하는 방법을 보여 줍니다.This example shows how to set the data type compatibility property. 기본적으로 이 속성은 SQL ServerSQL Server Native Client를 사용할 경우 0으로 설정됩니다.By default, this is set to 0 when you are using SQL ServerSQL Server Native Client. 이 값을 80으로 설정하면 SQL ServerSQL Server Native Client 공급자가 xml 및 사용자 정의 형식 열을 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. 이러한 유형은 각각 DBTYPE_WSTR 및 DBTYPE_BYTES입니다.This would be DBTYPE_WSTR and DBTYPE_BYTES, respectively.

SQL ServerSQL Server Native Client는 클라이언트 컴퓨터에도 설치되어 있어야 하며 연결 문자열에는 "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;...".

이 예를 테스트하려면To test this example

  1. SQL ServerSQL Server Native Client가 설치되어 있고 MDAC 2.6.0 이상 버전을 클라이언트 컴퓨터에서 사용할 수 있는지 확인하십시오.Verify that the SQL ServerSQL Server Native Client is installed and that MDAC 2.6.0or later is available on the client computer.

    자세한 내용은 SQL Server Native Client 프로그래밍을 참조하세요.For more information, see SQL Server Native Client Programming.

  2. AdventureWorks2012AdventureWorks2012SQL ServerSQL Server 예제 데이터베이스가 설치되어 있는지 확인합니다.Verify that the AdventureWorks2012AdventureWorks2012 sample database in SQL ServerSQL Server is installed.

    이 예에는 AdventureWorks2012AdventureWorks2012 예제 데이터베이스가 필요합니다.This example requires the AdventureWorks2012AdventureWorks2012 sample database.

  3. 이 항목의 앞에 표시된 코드를 복사하여 텍스트 또는 코드 편집기에 붙여 넣습니다.Copy the code shown previously in this topic and paste the code into your text or code editor. 파일을 HandlingXmlDataType.vbs로 저장합니다.Save the file as HandlingXmlDataType.vbs.

  4. SQL ServerSQL Server 설치에 필요한 대로 스크립트를 수정하고 변경 내용을 저장합니다.Modify the script as required for your SQL ServerSQL Server installation and save your changes.

    예를 들어 MyServer 가 지정된 경우 이를 (local) 이나 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. HandlingXmlDataType.vbs를 실행하고 스크립트를 실행합니다.Run HandlingXmlDataType.vbs and execute the script.

    결과는 다음 예제 결과와 비슷해야 합니다.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>  

ADO.NET을 사용하여 xml 유형의 열에서 XML 처리Handling XML from an xml Type Column by Using ADO.NET

ADO.NET 및 MicrosoftMicrosoft .NET Framework.NET Framework를 사용하여 xml 데이터 형식 열에서 XML을 처리하려면 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. 예를 들어 xml 데이터 형식 열과 해당 값은 SqlDataReader를 사용하여 SQL 열을 검색하는 것과 같은 방식으로 검색할 수 있습니다. 하지만 xml 데이터 형식 열의 콘텐츠를 XML로 사용하려는 경우 이 콘텐츠를 먼저 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.

자세한 내용과 코드 예는 MicrosoftMicrosoft .NET Framework 2.0.NET Framework 2.0 SDK 설명서의 "XML Column Values in a Data Reader"를 참조하십시오.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.

ADO.NET을 사용하여 매개 변수의 xml 유형 열 처리Handling an xml Type Column in Parameters by Using ADO.NET

ADO.NET 및 .NET Framework.NET Framework의 매개 변수로 전달된 xml 데이터 형식을 처리하려면 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. xml SQL ServerSQL Server 데이터 형식 열은 string 또는 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.

자세한 내용과 코드 예는 MicrosoftMicrosoft .NET Framework 2.0.NET Framework 2.0 SDK 설명서의 "XML Values as Command Parameters"를 참조하십시오.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.

참고 항목See Also

XML 데이터(SQL Server)XML Data (SQL Server)