Package.LoadFromXML(String, IDTSEvents) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Charge un package et tous ses objets enregistrés sur la mémoire au format XML. Pour charger un package enregistré sur le disque dur, utilisez la méthode 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)
Paramètres
- packageXml
- String
Chaîne qui contient le package au format XML.
- events
- IDTSEvents
Objet qui implémente l'interface IDTSEvents visant à déclencher les événements (erreurs, avertissements, etc.) pendant la persistance.
Exemples
L’exemple de code suivant crée un package et y ajoute deux tâches. Le code XML du package est enregistré XmlDocument
en mémoire. Un deuxième package est créé et, étant donné qu’il est chargé avec le même XmlDocument
package, il s’agit maintenant d’un doublon du premier 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
Remarques
Vous devez utiliser la LoadFromXML méthode pour charger le code XML en mémoire. Si vous souhaitez charger un package enregistré sur le disque dur au format XML, utilisez la Microsoft.SqlServer.Dts.Runtime.Application.LoadPackage méthode. Si le package a été enregistré dans la base de données système de fichiers ou MSDB, utilisez les méthodes ou Microsoft.SqlServer.Dts.Runtime.Application.LoadFromDtsServer les Microsoft.SqlServer.Dts.Runtime.Application.LoadFromSqlServer méthodes.
Lorsque vous appelez l’une des méthodes de chargement sur le Applicationpackage, le runtime effectue une itération dans les tâches, les gestionnaires de connexions, les fournisseurs d’informations et tous les autres objets contenus dans le package et appelle la LoadFromXML
méthode sur chacun d’eux. Les objets contenus ont du code dans leur LoadFromXML
analyse du XmlElement pour chaque propriété que l’objet doit recréer et la valeur enregistrée pour l’élément. Par conséquent, vous n’appelez pas directement les LoadFromXML
objets individuels, mais appelez la méthode sur l’objet Application , et le runtime est en cascade dans le package et appelle les LoadFromXML
objets pour vous.