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 を含む out パラメーター。

events
IDTSEvents

エラー、警告、または情報イベントを発生させるイベントを実装するオブジェクトです。

次のコード例では、パッケージを作成し、パッケージのプロパティをいくつか設定します。 パッケージは、SaveToXML メソッドを使用してメモリ内の XmlDocument に保存されます。 次に、新しいタスクがパッケージに追加されます。 コード例の最後のタスクは、SaveToXml を使用して、ハード ドライブ上のファイルに XML 全体を保存することです。

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.SaveToXmlApplication メソッドを呼び出すと、ランタイムは、タスク、接続マネージャー、ログ プロバイダー、およびパッケージに含まれるその他のすべてのオブジェクトの繰り返し処理を実行し、それぞれに対して SaveToXML メソッドを呼び出します。 格納されるオブジェクトは、オブジェクトが保存する必要がある各プロパティの XmlElement を作成するコードを SaveToXML に含むほか、要素の値を含みます。 パッケージには XmlDocument が含まれており、各オブジェクトはそのオブジェクト固有の要素をパッケージの XmlDocument に追加します。 したがって、個々のオブジェクトで SaveToXML を直接呼び出すのではなく、Application オブジェクトでこのメソッドを呼び出します。これにより、ランタイムによってパッケージ オブジェクトが連鎖的に処理され、SaveToXML が呼び出されます。

適用対象