Freigeben über


Package.SaveToXML(String, IDTSEvents) Methode

Definition

Speichert das Paket in einem XML-Format im Arbeitsspeicher. Verwenden Sie die SaveToXml(String, Package, IDTSEvents)-Methode, um ein Paket als XML-Datei auf der Festplatte zu speichern.

public:
 void SaveToXML([Runtime::InteropServices::Out] System::String ^ % packageXml, Microsoft::SqlServer::Dts::Runtime::IDTSEvents ^ events);
public void SaveToXML (out string packageXml, Microsoft.SqlServer.Dts.Runtime.IDTSEvents events);
override this.SaveToXML : string * Microsoft.SqlServer.Dts.Runtime.IDTSEvents -> unit
Public Sub SaveToXML (ByRef packageXml As String, events As IDTSEvents)

Parameter

packageXml
String

Ein Out-Parameter, der den XML-Code enthält, der erstellt wird, wenn das Paket gespeichert wird.

events
IDTSEvents

Ein Objekt, das die Ereignisse zum Auslösen von Fehlern, Warnungen oder Informationsereignissen implementiert.

Beispiele

Im folgenden Codebeispiel wird ein Paket erstellt und mehrere Paketeigenschaften festgelegt. Das Paket wird dann mithilfe der SaveToXML Methode in einem Arbeitsspeicher XmlDocument gespeichert. Als Nächstes wird dem Paket eine neue Aufgabe hinzugefügt. Die letzte Aufgabe des Codebeispiels besteht darin, den gesamten XML-Code auf einer Datei auf der Festplatte mithilfe SaveToXmlder Festplatte zu speichern.

using System;  
using System.Collections.Generic;  
using System.Text;    
using Microsoft.SqlServer.Dts.Runtime;  
using Microsoft.SqlServer.Dts.Tasks.BulkInsertTask;  
using System.Xml;  

namespace SaveToXML_API  
{  
    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);  
            // You can cast the task here.  
            // BulkInsertTask myTask = th.InnerObject as BulkInsertTask;  

            // 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);  

        }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text    
Imports Microsoft.SqlServer.Dts.Runtime  
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask  
Imports System.Xml  

Namespace SaveToXML_API  
    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)  
            ' You can cast the task here.  
            ' BulkInsertTask myTask = th.InnerObject as BulkInsertTask;  

            ' 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, Nothing)  

        End Sub  
    End Class  
End Namespace  

Hinweise

Wenn Sie ein Paket als XML auf der Festplatte speichern möchten, verwenden Sie die Microsoft.SqlServer.Dts.Runtime.Application.SaveToXml Methode. Wenn Sie das Paket im Dateisystem speichern möchten, verwenden Sie Microsoft.SqlServer.Dts.Runtime.Application.SaveToDtsServer. Wenn Sie das Paket in der MSDB-Datenbank speichern möchten, verwenden Microsoft.SqlServer.Dts.Runtime.Application.SaveToSqlServer oder Microsoft.SqlServer.Dts.Runtime.Application.SaveToSqlServerAs methoden. Wenn Sie die Microsoft.SqlServer.Dts.Runtime.Application.SaveToXml Methoden für die ApplicationMethode aufrufen, durchlaufen die Laufzeit die Aufgaben, Verbindungsmanager, Protokollanbieter und alle anderen Objekte, die im Paket enthalten sind, und rufen Sie die SaveToXML Methode auf jedem dieser Objekte auf. Die enthaltenen Objekte enthalten Code in ihrer SaveToXML Eigenschaft, die ein XmlElement für jede Eigenschaft erstellt, die das Objekt speichern muss, und einen Wert für das Element. Das Paket enthält das XmlDocument und die Objekte fügen ihre spezifischen Elemente an das XmlDocument des Pakets an. Daher rufen Sie die SaveToXML einzelnen Objekte nicht direkt auf, rufen jedoch die Methode für das Application Objekt auf, und die Laufzeit wird über die Paketobjekte kaskadieren und dies SaveToXML für Sie aufrufen.

Gilt für: