Package.LoadFromXML(String, IDTSEvents) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Carica un pacchetto e tutti i suoi oggetti salvati in memoria in formato XML. Per caricare un pacchetto che viene salvato sull'hard disk, usa il LoadPackage(String, IDTSEvents) metodo.
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)
Parametri
- packageXml
- String
Una stringa che contiene il pacchetto in formato XML.
- events
- IDTSEvents
Un oggetto che implementa l'interfaccia IDTSEvents per l'esecuzione di eventi di sparo (errori, avvisi e così via) durante la persistenza.
Esempio
Il seguente esempio di codice crea un pacchetto e aggiunge due compiti ad esso. Il pacchetto XML viene salvato in una XmlDocument memoria interna. Viene creato un secondo pacchetto e, poiché viene caricato con lo stesso XmlDocument, ora è un duplicato del primo pacchetto.
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
Commenti
Dovresti usare il LoadFromXML metodo per caricare l'XML che è in memoria. Se vuoi caricare un pacchetto che è stato salvato sull'hard disk come XML, usa il metodo Microsoft.SqlServer.Dts.Runtime.Application.LoadPackage . Se il pacchetto è stato salvato nel File System o nel database MSDB, si utilizzano i Microsoft.SqlServer.Dts.Runtime.Application.LoadFromSqlServer metodi op Microsoft.SqlServer.Dts.Runtime.Application.LoadFromDtsServer .
Quando chiami uno qualsiasi dei metodi di caricamento sul Application, il runtime itererà tra i compiti, i gestori di connessione, i provider di log e tutti gli altri oggetti contenuti nel package e chiamerà il LoadFromXML metodo su ciascuno di essi. Gli oggetti contenuti hanno codice che LoadFromXML analizza l'XmlElement per ogni proprietà che l'oggetto deve ricreare, e il valore salvato per l'elemento. Pertanto, non chiami direttamente il LoadFromXML on ai singoli oggetti, ma chiami il metodo sull'oggetto Application , e il runtime si scorre attraverso il package e chiama il LoadFromXML on sugli oggetti per te.