次の方法で共有


Package.LoadFromXML Method (String, IDTSEvents)

XML 形式でメモリに保存されている、パッケージとそのすべてのオブジェクトを読み込みます。ハード ドライブに保存されているパッケージを読み込むには、Application.LoadPackage メソッドを使用します。

名前空間: Microsoft.SqlServer.Dts.Runtime
アセンブリ: Microsoft.SqlServer.ManagedDTS (microsoft.sqlserver.manageddts.dll 内)

構文

'宣言
Public Sub LoadFromXML ( _
    packageXml As String, _
    events As IDTSEvents _
)
public void LoadFromXML (
    string packageXml,
    IDTSEvents events
)
public:
void LoadFromXML (
    String^ packageXml, 
    IDTSEvents^ events
)
public void LoadFromXML (
    String packageXml, 
    IDTSEvents events
)
public function LoadFromXML (
    packageXml : String, 
    events : IDTSEvents
)

パラメータ

  • packageXml
    XML 形式のパッケージを表す String です。
  • events
    保存中にイベント (エラー、警告など) を発生させるための IDTSEvents インターフェイスを実装するオブジェクトです。

解説

更新されたテキスト :2005 年 12 月 5 日

メモリ上にある XML を読み込むには、LoadFromXML メソッドを使用します。XML としてハード ドライブに保存されているパッケージを読み込む場合は、Application.LoadPackage メソッドを使用します。パッケージがファイル システムまたは MSDB データベースに保存されている場合は、Application.LoadFromSqlServer メソッドまたは Application.LoadFromDtsServer メソッドを使用します。

Application でいずれかの読み込みメソッドを呼び出すと、ランタイムは、タスク、接続マネージャ、ログ プロバイダ、およびパッケージに含まれるその他のすべてのオブジェクトの繰り返し処理を実行し、それぞれに対して LoadFromXML メソッドを呼び出します。格納されるオブジェクトは、オブジェクトが再作成する必要がある各プロパティの XmlElement を解析するコードを LoadFromXML に含むほか、要素に対して保存された値を含みます。したがって、個々のオブジェクトで LoadFromXML を直接呼び出すのではなく、Application オブジェクトでこのメソッドを呼び出します。これにより、ランタイムがパッケージを連鎖的に処理し、オブジェクト上で LoadFromXML を呼び出します。

使用例

次のコード例では、パッケージを作成し、そのパッケージに 2 つのタスクを追加します。パッケージ XML は、メモリ内の XmlDocument に保存されます。2 つ目のパッケージが作成され、そのパッケージは同じ XmlDocument を使用して読み込まれるため、最初のパッケージの複製になります。

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

スレッド セーフ

この型の public static (Microsoft Visual Basic では共有 ) メンバは、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。

プラットフォーム

開発プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

対象プラットフォーム

サポートされているプラットフォームの一覧については、「SQL Server 2005 のインストールに必要なハードウェアおよびソフトウェア」を参照してください。

参照

関連項目

Package Class
Package Members
Microsoft.SqlServer.Dts.Runtime Namespace