Package.LoadFromXML(String, IDTSEvents) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
메모리에 XML 형식으로 저장된 패키지 및 모든 해당 개체를 로드합니다. 하드 드라이브에 저장된 패키지를 로드하려면 LoadPackage(String, IDTSEvents) 메서드를 사용합니다.
public:
void LoadFromXML(System::String ^ packageXml, Microsoft::SqlServer::Dts::Runtime::IDTSEvents ^ events);
public void LoadFromXML (string packageXml, Microsoft.SqlServer.Dts.Runtime.IDTSEvents events);
override this.LoadFromXML : string * Microsoft.SqlServer.Dts.Runtime.IDTSEvents -> unit
Public Sub LoadFromXML (packageXml As String, events As IDTSEvents)
매개 변수
- packageXml
- String
XML 형식의 패키지를 포함하는 문자열입니다.
- events
- IDTSEvents
지속 중 오류, 경고 등의 이벤트를 발생시키기 위한 IDTSEvents 인터페이스를 구현하는 개체입니다.
예제
다음 코드 예제에서는 패키지를 만들고 두 개의 작업을 추가합니다. 패키지 XML은 메모리에 XmlDocument
저장됩니다. 두 번째 패키지가 만들어지고 동일한 XmlDocument
패키지로 로드되므로 이제 첫 번째 패키지의 중복입니다.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Tasks.BulkInsertTask;
using System.Xml;
namespace Microsoft.SqlServer.SSIS.Samples
{
class Program
{
static void Main(string[] args)
{
Application app = new Application();
// Location and file name can be combined into one string,
// or location could be set by a variable instead of
// hard-coded.
String XmlLocation = @"C:\XML";
String XmlFileName = "TestXML.xml";
String XmlFile = XmlLocation + XmlFileName;
Package pkg = new Package();
pkg.CreatorName = "Test";
pkg.Name = "SaveToXML Package";
pkg.CheckSignatureOnLoad = true;
pkg.DelayValidation = false;
pkg.SaveCheckpoints = false;
// Create package XmlDocument and use in pkg.SaveToXml.
XmlDocument myPkgDocument = new XmlDocument();
pkg.SaveToXML(ref myPkgDocument, null, null);
// If you want to see what the package XML contains
// at this point, uncomment this line and view the console.
// Console.Out.WriteLine(myPkgDocument.OuterXml);
// Now modify the package. Create a task
// and set some properties.
Executable execBI = pkg.Executables.Add("STOCK:BulkInsertTask");
TaskHost th = execBI as TaskHost;
th.Properties["DebugMode"].SetValue(th, false);
// Save the task into the package using pkg.SaveToXML.
// This saves the package after it has been modified
// by the addition of the task.
pkg.SaveToXML(ref myPkgDocument, null, null);
// When you want to save the package to the hard-drive,
// Save using the Application.SaveToXML method.
//app.SaveToXml(XmlFile, pkg, null);
// Reload the package from its XML.
Package pkg2 = new Package();
pkg2.LoadFromXML(myPkgDocument, null);
Console.WriteLine("This is the package XML that pkg2 now contains:");
Console.Out.WriteLine(myPkgDocument.OuterXml);
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask
Imports System.Xml
Namespace Microsoft.SqlServer.SSIS.Samples
Class Program
Shared Sub Main(ByVal args() As String)
Dim app As Application = New Application()
' Location and file name can be combined into one string,
' or location could be set by a variable instead of
' hard-coded.
Dim XmlLocation As String = "C:\XML"
Dim XmlFileName As String = "TestXML.xml"
Dim XmlFile As String = XmlLocation + XmlFileName
Dim pkg As Package = New Package()
pkg.CreatorName = "Test"
pkg.Name = "SaveToXML Package"
pkg.CheckSignatureOnLoad = True
pkg.DelayValidation = False
pkg.SaveCheckpoints = False
' Create package XmlDocument and use in pkg.SaveToXml.
Dim myPkgDocument As XmlDocument = New XmlDocument()
pkg.SaveToXML( myPkgDocument,Nothing,Nothing)
' If you want to see what the package XML contains
' at this point, uncomment this line and view the console.
' Console.Out.WriteLine(myPkgDocument.OuterXml);
' Now modify the package. Create a task
' and set some properties.
Dim execBI As Executable = pkg.Executables.Add("STOCK:BulkInsertTask")
Dim th As TaskHost = execBI as TaskHost
th.Properties("DebugMode").SetValue(th, False)
' Save the task into the package using pkg.SaveToXML.
' This saves the package after it has been modified
' by the addition of the task.
pkg.SaveToXML( myPkgDocument,Nothing,Nothing)
' When you want to save the package to the hard-drive,
' Save using the Application.SaveToXML method.
'app.SaveToXml(XmlFile, pkg, null);
' Reload the package from its XML.
Dim pkg2 As Package = New Package()
pkg2.LoadFromXML(myPkgDocument, Nothing)
Console.WriteLine("This is the package XML that pkg2 now contains:")
Console.Out.WriteLine(myPkgDocument.OuterXml)
End Sub
End Class
End Namespace
설명
메모리에 있는 XML을 LoadFromXML 로드하려면 이 메서드를 사용해야 합니다. 하드 드라이브에 XML로 저장된 패키지를 로드하려면 이 메서드를 Microsoft.SqlServer.Dts.Runtime.Application.LoadPackage 사용합니다. 패키지가 파일 시스템 또는 MSDB 데이터베이스에 저장된 경우 해당 또는 Microsoft.SqlServer.Dts.Runtime.Application.LoadFromDtsServer 메서드를 Microsoft.SqlServer.Dts.Runtime.Application.LoadFromSqlServer 사용합니다.
로드 메서드 Application를 호출할 때 런타임은 태스크, 연결 관리자, 로그 공급자 및 패키지에 포함된 다른 모든 개체를 반복하고 각 개체에 대해 메서드를 LoadFromXML
호출합니다. 포함된 개체에는 개체가 LoadFromXML
다시 만들어야 하는 각 속성의 XmlElement와 요소에 대해 저장된 값을 구문 분석하는 코드가 있습니다. 따라서 개별 개체에서 직접 호출 LoadFromXML
하지는 않지만 개체에서 Application 메서드를 호출하면 런타임이 패키지를 통해 계단식으로 이동하고 개체를 호출 LoadFromXML
합니다.