Udostępnij za pośrednictwem


Metoda Package.LoadFromXML (String, IDTSEvents)

Ładuje pakiet i wszystkie jego obiekty, które zostały zapisane w pamięci w formacie XML.Aby załadować pakiet zapisany na dysku twardym, użyj Application.LoadPackage metoda.

Przestrzeń nazw:  Microsoft.SqlServer.Dts.Runtime
Zestaw:  Microsoft.SqlServer.ManagedDTS (w Microsoft.SqlServer.ManagedDTS.dll)

Składnia

'Deklaracja
Public Sub LoadFromXML ( _
    packageXml As String, _
    events As IDTSEvents _
)
'Użycie
Dim instance As Package
Dim packageXml As String
Dim events As IDTSEvents

instance.LoadFromXML(packageXml, events)
public void LoadFromXML(
    string packageXml,
    IDTSEvents events
)
public:
void LoadFromXML(
    String^ packageXml, 
    IDTSEvents^ events
)
member LoadFromXML : 
        packageXml:string * 
        events:IDTSEvents -> unit 
public function LoadFromXML(
    packageXml : String, 
    events : IDTSEvents
)

Parametry

  • packageXml
    Typ: System.String
    A ciąg zawiera pakiet w formacie XML.

Uwagi

Należy używać LoadFromXML metoda ładowania XML, który znajduje się w pamięci.Jeśli chcesz załadować pakiet, który został zapisany na dysku twardym jako XML, użyj Application.LoadPackage metoda.Jeśli pakiet został zapisany w bazie danych systemu plików lub MSDB, Application.LoadFromSqlServer lub Application.LoadFromDtsServer metody.

Po wywołaniu metoda ładowania na Application, środowiska wykonawczego będzie iterować przeglądanie zadań, Menedżer połączeń, dostawców dzienników i wszelkie inne obiekty są zawarte przez pakiet i wywołanie LoadFromXML metoda na każdym z nich.Zawarte obiekty mają kod w ich LoadFromXML , analizuje XmlElement dla każdej właściwość, którą należy ponownie utworzyć obiekt i wartości zapisane dla elementu.Dlatego nie bezpośrednio wywołania LoadFromXML w poszczególnych obiektach, ale wywołać metoda Application obiektu i środowiska wykonawczego kaskadowe będzie pakiet i wywołanie LoadFromXML obiektów można.

Przykłady

Poniższy przykład kodu tworzy pakiet i dodaje do niej dwa zadania.Pakiet XML jest zapisywany do XmlDocument w pamięci.Drugi pakiet jest tworzony, ponieważ jest ładowany z tym samym XmlDocument, teraz jest duplikatem pierwszego pakietu.

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