Package.SaveToXML(String, IDTSEvents) Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Menyimpan paket ke memori dalam format XML. Untuk menyimpan paket sebagai .xml ke hard drive, gunakan metode .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)
Parameter
- packageXml
- String
Parameter keluar yang berisi XML yang dibuat saat paket disimpan.
- events
- IDTSEvents
Objek yang mengimplementasikan peristiwa untuk memunculkan kesalahan, peringatan, atau peristiwa informasi.
Contoh
Contoh kode berikut membuat paket dan mengatur beberapa properti paket. Paket kemudian disimpan ke dalam memori XmlDocument menggunakan SaveToXML metode . Selanjutnya, tugas baru ditambahkan ke paket. Tugas akhir dari contoh kode adalah menyimpan seluruh XML ke file di hard-drive menggunakan 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
Keterangan
Jika Anda ingin menyimpan paket sebagai XML ke hard drive, gunakan metode .Microsoft.SqlServer.Dts.Runtime.Application.SaveToXml Jika Anda ingin menyimpan paket ke Sistem File, gunakan Microsoft.SqlServer.Dts.Runtime.Application.SaveToDtsServer. Jika Anda ingin menyimpan paket ke database MSDB, gunakan Microsoft.SqlServer.Dts.Runtime.Application.SaveToSqlServer metode atau Microsoft.SqlServer.Dts.Runtime.Application.SaveToSqlServerAs . Ketika Anda memanggil Microsoft.SqlServer.Dts.Runtime.Application.SaveToXml metode pada Application, runtime akan melakukan iterasi melalui tugas, manajer koneksi, penyedia log, dan semua objek lain yang dimuat oleh paket dan memanggil SaveToXML metode pada masing-masing. Objek yang terkandung memiliki kode di dalamnya SaveToXML yang membuat XmlElement untuk setiap properti yang harus disimpan objek, dan nilai untuk elemen . Paket berisi XmlDocument dan objek menambahkan elemen spesifiknya ke dalam XmlDocument paket. Oleh karena itu, Anda tidak secara langsung memanggil SaveToXML pada objek individual, tetapi memanggil metode pada Application objek , dan runtime akan berdiskusi melalui objek paket dan memanggil SaveToXML untuk Anda.