Package.LoadFromXML Method (String, IDTSEvents)
Loads a package and all its objects that have been saved to memory in XML format. To load a package that is saved to the hard drive, use the Application.LoadPackage method.
命名空间: Microsoft.SqlServer.Dts.Runtime
程序集: Microsoft.SqlServer.ManagedDTS (in microsoft.sqlserver.manageddts.dll)
语法
声明
Public Sub LoadFromXML ( _
packageXml As String, _
events As IDTSEvents _
)
public void LoadFromXML (
string packageXml,
IDTSEvents events
)
public:
void LoadFromXML (
String^ packageXml,
IDTSEvents^ events
)
public void LoadFromXML (
String packageXml,
IDTSEvents events
)
public function LoadFromXML (
packageXml : String,
events : IDTSEvents
)
参数
- packageXml
A String that contains the package in XML format.
- events
An object that implements the IDTSEvents interface for firing events (errors, warnings, and so on) during persistence.
备注
已更新的文本:2005 年 12 月 5 日
You should use the LoadFromXML method to load the XML that is in memory. If you want to load a package that has been saved to the hard drive as XML, use the Application.LoadPackage method. If the package has been saved to the File System or MSDB database, use the Application.LoadFromSqlServer or Application.LoadFromDtsServer methods.
When you call any of the loading methods on the Application, the runtime will iterate through the tasks, connection managers, log providers, and all other objects that are contained by the package and call the LoadFromXML method on each of them. The contained objects have code in their LoadFromXML that parses the XmlElement for each property that the object must recreate, and the value saved for the element. Therefore, you do not directly call the LoadFromXML on the individual objects, but call the method on the Application object, and the runtime will cascade through the package and call the LoadFromXML on the objects for you.
示例
The following code example creates a package and adds two tasks to it. The package XML is saved to an XmlDocument in memory. A second package is created, and because it is loaded with the same XmlDocument, it is now a duplicate of the first package.
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
线程安全
Any public static (Shared in Microsoft Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
平台
开发平台
有关支持的平台列表,请参阅安装 SQL Server 2005 的硬件和软件要求。
目标平台
有关支持的平台列表,请参阅安装 SQL Server 2005 的硬件和软件要求。
请参阅
参考
Package Class
Package Members
Microsoft.SqlServer.Dts.Runtime Namespace