Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure Data Factory'de SSIS Tümleştirme Çalışma Zamanı
Entegrasyon Hizmetleri paketlerini gerektiğinde veya önceden belirlenmiş zamanlarda, Çalıştırma Paketleri bölümünde tanımlanan yöntemleri kullanarak çalıştırabilirsiniz. Ancak, sadece birkaç satır kodla, Windows Forms uygulaması, konsol uygulaması, ASP.NET web formu veya web servisi veya Windows servisi gibi özel bir uygulamadan da bir paket çalıştırabilirsiniz.
Bu konu şunları tartışıyor:
Bir paketi programlı olarak yükleme
Bir paketi programlı olarak çalıştırmak
Bu konuda paketleri yüklemek ve çalıştırmak için kullanılan tüm yöntemler Microsoft'a referans gerektirir. SqlServer.ManagedDTS assembly. Yeni bir projede referans eklendikten sonra, isim alanını Microsoft.SqlServer.Dts.Runtimeusing veya Imports ifadesi ile içe aktarın.
Bir Paketi Programatik Olarak Yükleme
Yerel bilgisayarda programatik olarak bir paket yüklemek için, paket yerel veya uzaktan mı depolanıyor olsun, aşağıdaki yöntemlerden birini çağırın:
| Depolama Konumu | Çağırma Yöntemi |
|---|---|
| Dosya | LoadPackage |
| SSIS Paket Mağazası | LoadFromDtsServer |
| SQL Server | LoadFromSqlServer |
Important
SSIS Paket Mağazası ile çalışma sınıfının yöntemleri Application yalnızca ".", localhost veya yerel sunucu için sunucu adını destekler. "(local)" kullanabilirsiniz.
Bir Paketi Programatik Olarak Çalıştırmak
Yerel bilgisayarda paket çalıştıran yönetilen kodda özel bir uygulama geliştirmek için aşağıdaki yaklaşım gereklidir. Burada özetlenen adımlar, aşağıdaki model konsol uygulamasında gösterilmiştir.
Yerel bilgisayarda programlı olarak bir paket çalıştırmak
Visual Studio geliştirme ortamını başlatın ve tercih ettiğiniz geliştirme dilinde yeni bir uygulama oluşturun. Bu örnekte bir konsol uygulaması kullanılır; ancak bir Windows Forms uygulamasından, ASP.NET web formundan veya web servisinden veya Windows servisinden bir paket çalıştırabilirsiniz.
Project menüsünde Add Reference (Referans Ekle) tuşuna tıklayın veMicrosoft.SqlServer.ManagedDTS.dlliçin bir referans ekleyin. Tamam'a tıklayın.
Microsoft'u içe aktarmak için Visual Basic Imports ifadesini veya C# using ifadesini kullanın. SqlServer.Dts.Runtime namespace.
Ana rutine aşağıdaki kodu ekleyin. Tamamlanmış konsol uygulaması aşağıdaki örnek gibi görünmelidir.
Note
Örnek kod, dosya sisteminden paketin LoadPackage bu yöntemle yüklendiğini gösterir. Ancak, paketi MSDB veritabanından da metodu LoadFromSqlServer çağırarak veya Integration Services paket mağazasından metodu LoadFromDtsServer çağırarak yükleyebilirsiniz.
Projeyi çalıştırın. Örnek kodu, SQL Server örnekleriyle birlikte kurulu CalculatedColumns örnek paketini çalıştırır. Paket yürütme sonucu konsol penceresinde görüntülenir.
Örnek Kod
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();
}
}
}
Bir Dosyadan Olayları Yakalamak
Önceki örnekte gösterildiği gibi bir paketi programlı olarak çalıştırırken, paket çalışırken ortaya çıkan hataları ve diğer olayları da yakalamak isteyebilirsiniz. Bunu, sınıftan DefaultEvents miras alan bir sınıf ekleyerek ve paketi yüklerken o sınıfa bir referans vererek yapabilirsiniz. Aşağıdaki örnek sadece olayı OnError kaydetmesine rağmen, sınıfın DefaultEvents yakalamanıza izin verdiği birçok başka olay da var.
Yerel bilgisayarda programlı olarak bir paket çalıştırmak ve paket olaylarını yakalamak
Bu örnek için bir proje oluşturmak üzere yukarıdaki örnekteki adımları izleyin.
Ana rutine aşağıdaki kodu ekleyin. Tamamlanmış konsol uygulaması aşağıdaki örnek gibi görünmelidir.
Projeyi çalıştırın. Örnek kodu, SQL Server örnekleriyle birlikte kurulu CalculatedColumns örnek paketini çalıştırır. Paket yürütme sonucu konsol penceresinde ve ortaya çıkan hatalarla birlikte gösterilir.
Örnek Kod
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();
}
}
}