Package.LoadFromXML(String, IDTSEvents) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Lädt ein Paket und alle dazugehörigen Objekte, die im XML-Format im Speicher gespeichert wurden. Verwenden Sie die LoadPackage(String, IDTSEvents)-Methode, um ein auf der Festplatte gespeichertes Paket zu laden.
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)
Parameter
- packageXml
- String
Eine Zeichenfolge, die das Paket im XML-Format enthält.
- events
- IDTSEvents
Ein Objekt, das die IDTSEvents-Schnittstelle zum Auslösen von Ereignissen (Fehlern, Warnungen usw.) während der Persistenz implementiert.
Beispiele
Im folgenden Codebeispiel wird ein Paket erstellt und zwei Aufgaben hinzugefügt. Die Paket-XML wird in einem XmlDocument
Arbeitsspeicher gespeichert. Ein zweites Paket wird erstellt, und da es mit demselben XmlDocument
geladen wird, ist es jetzt ein Duplikat des ersten Pakets.
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
Hinweise
Sie sollten die Methode verwenden, um den XML-Code zu laden, der LoadFromXML sich im Arbeitsspeicher befindet. Wenn Sie ein Paket laden möchten, das als XML auf der Festplatte gespeichert wurde, verwenden Sie die Microsoft.SqlServer.Dts.Runtime.Application.LoadPackage Methode. Wenn das Paket in der Dateisystem- oder MSDB-Datenbank gespeichert wurde, verwenden Sie die Microsoft.SqlServer.Dts.Runtime.Application.LoadFromSqlServer Methoden oder Microsoft.SqlServer.Dts.Runtime.Application.LoadFromDtsServer Methoden.
Wenn Sie eine der Lademethoden für das ApplicationLaden aufrufen, wird die Laufzeit durch die Aufgaben, Verbindungsmanager, Protokollanbieter und alle anderen Objekte, die von dem Paket enthalten sind, durchlaufen und die LoadFromXML
Methode für jede dieser Objekte aufrufen. Die enthaltenen Objekte verfügen über Code in ihrer LoadFromXML
Eigenschaft, die das XmlElement für jede Eigenschaft analysiert, die das Objekt neu erstellen muss, und der Wert, der für das Element gespeichert ist. Daher rufen LoadFromXML
Sie die einzelnen Objekte nicht direkt auf, rufen aber die Methode auf dem Application Objekt auf, und die Laufzeit wird über das Paket über die Pakete überkaskadieren und die LoadFromXML
Objekte für Sie aufrufen.