CommandStream 속성을 사용하여 템플릿 파일 실행
적용 대상: SQL Server Azure SQL Database
이 예제에서는 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 인스턴스의 이름을 제공해야 합니다.
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 실행합니다.