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;
}
}
응용 프로그램을 테스트하려면
이 예에서 제공하는 XML 템플릿(TemplateFile.xml)을 폴더에 저장합니다.
이 예에서 제공하는 C# 코드(DocSample.cs)를 스키마가 저장된 폴더와 같은 폴더에 저장합니다. (다른 폴더에 파일을 저장하는 경우 코드를 편집하여 매핑 스키마에 대해 적합한 디렉터리 경로를 지정해야 합니다.)
코드를 컴파일합니다. 다음을 사용하여 명령 프롬프트에서 코드를 컴파일합니다.
csc /reference:Microsoft.Data.SqlXML.dll DocSample.cs
이렇게 하면 실행 파일(DocSample.exe)이 만들어집니다.
명령 프롬프트에서 DocSample.exe를 실행합니다.