Язык

Package.SaveToXML(String, IDTSEvents) Метод

Определение

Сохраняет пакет в память в формате XML. Чтобы сохранить пакет как .xml на жёсткий диск, используйте метод.SaveToXml(String, Package, IDTSEvents)

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)

Параметры

packageXml
String

Параметр выхода, содержащий XML, созданный при сохранении пакета.

events
IDTSEvents

Объект, который реализует события для появления ошибок, предупреждений или информационных событий.

Примеры

Следующий пример кода создаёт пакет и задаёт несколько свойств пакета. Затем пакет сохраняется во внутренней памяти XmlDocument с помощью этого SaveToXML метода. Далее в пакет добавляется новая задача. Последняя задача примера кода — сохранить весь XML в файл на жёстком диске с помощью SaveToXml.

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  

Комментарии

Если вы хотите сохранить пакет в формате XML на жёсткий диск, используйте этот Microsoft.SqlServer.Dts.Runtime.Application.SaveToXml метод. Если вы хотите сохранить пакет в файловой системе, используйте Microsoft.SqlServer.Dts.Runtime.Application.SaveToDtsServer. Если вы хотите сохранить пакет в базу данных MSDB, используйте Microsoft.SqlServer.Dts.Runtime.Application.SaveToSqlServer методы или Microsoft.SqlServer.Dts.Runtime.Application.SaveToSqlServerAs методы. Когда вы вызываете Microsoft.SqlServer.Dts.Runtime.Application.SaveToXml методы на Application, время выполнения проходит через задачи, менеджеры соединений, провайдеры журналов и все другие объекты, содержащиеся в пакете, и вызывает метод SaveToXML на каждом из них. Содержащиеся объекты содержат код SaveToXML , который создаёт XmlElement для каждого свойства, которое объект должен сохранить, и значение для этого элемента. Пакет содержит XmlDocument, а объекты добавляют свои специфические элементы в XmlDocument пакета. Поэтому вы не вызываете SaveToXML напрямую на отдельных объектах, а вызываете метод на объекте Application , и время выполнения будет проходить через объекты пакета и вызывать SaveToXML их для вас.

Применяется к