SQL Server 2000의 XML 데이터(ADO.NET)
Microsoft SQL Server 2000에는 데이터를 검색할 때 XML을 지원하는 기능이 도입되었습니다. SQL Server 2000에서 직접 XML 스트림을 반환하기 위해 .NET Framework Data Provider for SQL Server의 SqlCommand 개체에는 ExecuteXmlReader 메서드가 포함되어 있습니다. ExecuteXmlReader에서는 SqlCommand에 SQL 문을 지정한 결과로 채워진 System.Xml.XmlReader 개체를 반환합니다. XmlReader에 대한 자세한 내용은 XmlReader 클래스를 참조하십시오. ExecuteXmlReader는 다음 예제처럼 SQL Server 2000 FOR XML 절을 포함하는 문과 같이 결과를 XML 데이터로 반환하는 문에만 사용할 수 있습니다.
Dim command As SqlCommand = New SqlCommand( _
"SELECT * FROM Customers FOR XML AUTO, ELEMENTS", connection)
Dim reader As System.Xml.XmlReader = command.ExecuteXmlReader()
SqlCommand command = new SqlCommand(
"SELECT * FROM Customers FOR XML AUTO, ELEMENTS", connection);
System.Xml.XmlReader reader = command.ExecuteXmlReader();
또한 DataSet은 관계형 데이터를 XML로 쓰는 데 사용할 수 있는 것은 물론, XmlDataDocument와 동기화하여 메모리의 단일 데이터 집합에 대한 관계형 및 계층적 뷰를 실시간으로 표시할 수도 있습니다. 자세한 내용은 DataAdapter에서 DataSet 채우기(ADO.NET) 및 DataSet에서 XML 사용(ADO.NET)을 참조하십시오.
DataSet을 사용하여 데이터의 메모리 내 관계형 뷰를 표시할 필요가 없으며 특히 데이터의 양이 많다면 XML 데이터를 검색하는 데는 ExecuteXmlReader 메서드가 적합합니다. ExecuteXmlReader는 스트리밍 API이므로 DataSet을 사용하여 관계형 데이터를 XML로 변환한 경우처럼 호출자에게 노출하기 전에 모든 데이터를 검색하고 캐시할 필요가 없습니다.
XmlReader 닫기
XmlReader 개체 사용을 완료하면 항상 Close 메서드를 호출해야 합니다. XmlReader가 열려 있는 동안에는 XmlReader에서 Connection을 단독으로 사용하고 있는 것입니다. 따라서 원래 XmlReader를 닫을 때까지는 다른 XmlReader 또는 DataReader의 작성을 비롯하여 Connection에 대해 어떤 명령도 실행할 수 없습니다.