CommandStream 속성을 사용하여 템플릿 파일 실행

적용 대상: SQL Server Azure SQL 데이터베이스

이 예제에서는 SqlXmlCommand 개체의 CommandStream 속성을 사용하여 SQL 또는 XPath 쿼리로 구성된 템플릿 파일을 지정하는 방법을 보여 줍니다. 이 애플리케이션에서는 명령 파일에 대해 FileStreamobject가 열리고 파일 스트림이 실행되는 CommandStream으로 할당됩니다.

다음 예제에서 CommandType 속성은 SqlXmlCommandType.Template으로 지정됩니다(TemplateFile이 아님).

예제 XML 템플릿은 다음과 같습니다.

<ROOT xmlns:sql="urn:schemas-microsoft-com:xml-sql">  
  <sql:query>  
    SELECT TOP 2 ContactID, FirstName, LastName   
    FROM   Person.Contact  
    FOR XML AUTO  
  </sql:query>  
</ROOT>  

이것은 예제 C# 애플리케이션입니다. 따라서 애플리케이션을 테스트하려면 템플릿(TemplateFile.xml)을 저장한 다음 애플리케이션을 실행해야 합니다. 애플리케이션은 XML 템플릿에 지정된 쿼리를 실행하고 생성된 XML 문서를 화면에 표시합니다.

참고

코드에서 연결 문자열에 Microsoft SQL Server instance 이름을 제공해야 합니다.

using System;  
using Microsoft.Data.SqlXml;  
using System.IO;  
  
class Test  
{  
      static string ConnString = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI";  
      public static int testParams()  
      {  
         //Stream strm;  
         MemoryStream ms = new MemoryStream();  
         StreamWriter sw = new StreamWriter(ms);  
         ms.Position = 0;  
         SqlXmlCommand cmd = new SqlXmlCommand(ConnString);  
         cmd.CommandStream = new FileStream("TemplateFile.xml", FileMode.Open, FileAccess.Read);  
         cmd.CommandType = SqlXmlCommandType.Template;  
         using (Stream strm = cmd.ExecuteStream())  
         {  
            using (StreamReader sr = new StreamReader(strm)){  
               Console.WriteLine(sr.ReadToEnd());  
            }  
         }  
         return 0;        
      }  
  
      public static int Main(String[] args)  
      {  
         testParams();     
         return 0;  
      }  
   }  

애플리케이션을 테스트하려면

  1. 이 예에서 제공하는 XML 템플릿(TemplateFile.xml)을 폴더에 저장합니다.

  2. 이 예에서 제공하는 C# 코드(DocSample.cs)를 스키마가 저장된 폴더와 같은 폴더에 저장합니다. (다른 폴더에 파일을 저장하는 경우 코드를 편집하여 매핑 스키마에 대해 적합한 디렉터리 경로를 지정해야 합니다.)

  3. 코드를 컴파일합니다. 다음을 사용하여 명령 프롬프트에서 코드를 컴파일합니다.

    csc /reference:Microsoft.Data.SqlXML.dll DocSample.cs  
    

    이렇게 하면 실행 파일(DocSample.exe)이 만들어집니다.

  4. 명령 프롬프트에서 DocSample.exe를 실행합니다.