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

이 예에서는 SqlXmlCommand 개체의 CommandStream 속성을 사용하여 SQL 또는 XPath 쿼리로 이루어진 템플릿 파일을 지정하는 방법을 보여 줍니다. 이 응용 프로그램에서 FileStream개체는 명령 파일에 대해 열리며, 파일 스트림은 실행되는 CommandStream으로 할당됩니다.

다음 예에서는 CommandType 속성이 TemplateFile이 아니라 SqlXmlCommandType.Template로 지정됩니다.

예제 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 인스턴스의 이름을 지정해야 합니다.

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를 실행합니다.