Package.LoadFromXML(String, IDTSEvents) Methode

Definition

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 XmlDocumentgeladen 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.

Gilt für: