Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk: SQL Server
SSIS Integration Runtime di Azure Data Factory
Anda dapat menjalankan paket Layanan Integrasi sesuai kebutuhan atau pada waktu yang telah ditentukan dengan menggunakan metode yang dijelaskan dalam Paket Yang Berjalan. Namun, hanya dengan beberapa baris kode, Anda juga dapat menjalankan paket dari aplikasi kustom seperti aplikasi Formulir Windows, aplikasi konsol, formulir web ASP.NET atau layanan Web, atau layanan Windows.
Topik ini membahas:
Memuat paket secara terprogram
Menjalankan paket secara terprogram
Semua metode yang digunakan dalam topik ini untuk memuat dan menjalankan paket memerlukan referensi ke rakitan Microsoft.SqlServer.ManagedDTS . Setelah menambahkan referensi dalam proyek baru, impor Microsoft.SqlServer.Dts.Runtime namespace layanan dengan pernyataan menggunakan atau Impor .
Memuat Paket Secara Terprogram
Untuk memuat paket secara terprogram di komputer lokal, apakah paket disimpan secara lokal atau jarak jauh, panggil salah satu metode berikut:
| Lokasi Penyimpanan | Metode untuk Memanggil |
|---|---|
| File | LoadPackage |
| Penyimpanan Paket SSIS | LoadFromDtsServer |
| SQL Server | LoadFromSqlServer |
Penting
Metode Application kelas untuk bekerja dengan Penyimpanan Paket SSIS hanya mendukung ".", localhost, atau nama server untuk server lokal. Anda tidak dapat menggunakan "(lokal)".
Menjalankan Paket Secara Terprogram
Mengembangkan aplikasi kustom dalam kode terkelola yang menjalankan paket di komputer lokal memerlukan pendekatan berikut. Langkah-langkah yang dirangkum di sini ditunjukkan dalam aplikasi konsol sampel yang mengikuti.
Untuk menjalankan paket pada komputer lokal secara terprogram
Mulai lingkungan pengembangan Visual Studio, dan buat aplikasi baru dalam bahasa pengembangan pilihan Anda. Contoh ini menggunakan aplikasi konsol; namun Anda juga dapat menjalankan paket dari aplikasi Formulir Windows, formulir web ASP.NET atau layanan Web, atau layanan Windows.
Pada menu Proyek , klik Tambahkan Referensi dan tambahkan referensi ke Microsoft.SqlServer.ManagedDTS.dll. Klik OK.
Gunakan pernyataan Visual Basic Imports atau C# menggunakan pernyataan untuk mengimpor namespace Microsoft.SqlServer.Dts.Runtime .
Tambahkan kode berikut dalam rutinitas utama. Aplikasi konsol yang telah selesai akan terlihat seperti contoh berikut.
Catatan
Kode sampel menunjukkan pemuatan paket dari sistem file dengan menggunakan LoadPackage metode . Namun Anda juga dapat memuat paket dari database MSDB dengan memanggil LoadFromSqlServer metode , atau dari penyimpanan paket Layanan Integrasi dengan memanggil LoadFromDtsServer metode .
Jalankan proyek. Kode sampel menjalankan paket sampel CalculatedColumns yang diinstal dengan sampel SQL Server. Hasil eksekusi paket ditampilkan di jendela konsol.
Kode Sampel
Imports Microsoft.SqlServer.Dts.Runtime
Module Module1
Sub Main()
Dim pkgLocation As String
Dim pkg As New Package
Dim app As New Application
Dim pkgResults As DTSExecResult
pkgLocation = _
"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services" & _
"\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx"
pkg = app.LoadPackage(pkgLocation, Nothing)
pkgResults = pkg.Execute()
Console.WriteLine(pkgResults.ToString())
Console.ReadKey()
End Sub
End Module
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace RunFromClientAppCS
{
class Program
{
static void Main(string[] args)
{
string pkgLocation;
Package pkg;
Application app;
DTSExecResult pkgResults;
pkgLocation =
@"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services" +
@"\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx";
app = new Application();
pkg = app.LoadPackage(pkgLocation, null);
pkgResults = pkg.Execute();
Console.WriteLine(pkgResults.ToString());
Console.ReadKey();
}
}
}
Mengambil Peristiwa dari Paket yang Sedang Berjalan
Saat Anda menjalankan paket secara terprogram seperti yang ditunjukkan dalam sampel sebelumnya, Anda mungkin juga ingin menangkap kesalahan dan peristiwa lain yang terjadi saat paket dijalankan. Anda dapat menyelesaikan ini dengan menambahkan kelas yang mewarisi dari DefaultEvents kelas, dan dengan meneruskan referensi ke kelas tersebut saat Anda memuat paket. Meskipun contoh berikut hanya OnError menangkap peristiwa, ada banyak peristiwa lain yang DefaultEvents memungkinkan Anda mengambil kelas.
Untuk menjalankan paket pada komputer lokal secara terprogram dan mengambil peristiwa paket
Ikuti langkah-langkah dalam contoh sebelumnya untuk membuat proyek untuk contoh ini.
Tambahkan kode berikut dalam rutinitas utama. Aplikasi konsol yang telah selesai akan terlihat seperti contoh berikut.
Jalankan proyek. Kode sampel menjalankan paket sampel CalculatedColumns yang diinstal dengan sampel SQL Server. Hasil eksekusi paket ditampilkan di jendela konsol, bersama dengan kesalahan apa pun yang terjadi.
Kode Sampel
Imports Microsoft.SqlServer.Dts.Runtime
Module Module1
Sub Main()
Dim pkgLocation As String
Dim pkg As New Package
Dim app As New Application
Dim pkgResults As DTSExecResult
Dim eventListener As New EventListener()
pkgLocation = _
"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services" & _
"\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx"
pkg = app.LoadPackage(pkgLocation, eventListener)
pkgResults = pkg.Execute(Nothing, Nothing, eventListener, Nothing, Nothing)
Console.WriteLine(pkgResults.ToString())
Console.ReadKey()
End Sub
End Module
Class EventListener
Inherits DefaultEvents
Public Overrides Function OnError(ByVal source As Microsoft.SqlServer.Dts.Runtime.DtsObject, _
ByVal errorCode As Integer, ByVal subComponent As String, ByVal description As String, _
ByVal helpFile As String, ByVal helpContext As Integer, _
ByVal idofInterfaceWithError As String) As Boolean
' Add application-specific diagnostics here.
Console.WriteLine("Error in {0}/{1} : {2}", source, subComponent, description)
Return False
End Function
End Class
using System;
using Microsoft.SqlServer.Dts.Runtime;
namespace RunFromClientAppWithEventsCS
{
class MyEventListener : DefaultEvents
{
public override bool OnError(DtsObject source, int errorCode, string subComponent,
string description, string helpFile, int helpContext, string idofInterfaceWithError)
{
// Add application-specific diagnostics here.
Console.WriteLine("Error in {0}/{1} : {2}", source, subComponent, description);
return false;
}
}
class Program
{
static void Main(string[] args)
{
string pkgLocation;
Package pkg;
Application app;
DTSExecResult pkgResults;
MyEventListener eventListener = new MyEventListener();
pkgLocation =
@"C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services" +
@"\Package Samples\CalculatedColumns Sample\CalculatedColumns\CalculatedColumns.dtsx";
app = new Application();
pkg = app.LoadPackage(pkgLocation, eventListener);
pkgResults = pkg.Execute(null, null, eventListener, null, null);
Console.WriteLine(pkgResults.ToString());
Console.ReadKey();
}
}
}
Lihat Juga
Memahami Perbedaan antara Eksekusi Lokal dan Jarak Jauh
Memuat dan Menjalankan Paket Jarak Jauh Secara Terprogram
Memuat Output Paket Lokal