Yükleme ve yerel paketi programla çalıştırma
Çalıştırmak için Integration Services açıklanan yöntemleri kullanarak, zamanları paketleri gerektikçe ya da önceden Çalışan paketleri.Ancak, yalnızca birkaç satır kod ile de bir paket Windows Forms uygulaması, bir konsol uygulaması, bir ASP.NET Web form veya Web hizmetine ya da bir Windows hizmet gibi özel bir uygulamadan çalıştırabilirsiniz.
Bu konu ele almaktadır:
Paket programsal olarak yükleniyor
Paket programsal olarak çalıştırma
Bu konuda, yüklemek ve bu paketi çalıştırmak için kullanılan yöntemleri tüm başvuru gerektirir Microsoft.SqlServer.ManagedDTS derleme. Yeni bir proje başvurusu ekledikten sonra alma Microsoft.SqlServer.Dts.Runtime ad alanı ile bir using veya Imports deyim.
Yükleme bir paket programsal olarak
Paket uzaktan veya yerel olarak depolanan olup olmadığını programsal olarak yerel bilgisayar üzerindeki bir paketi yüklemek için aşağıdaki yöntemlerden birini arayın:
Depolama konumu |
Aranacak yöntem |
---|---|
dosyasını arayın |
LoadPackage(String, IDTSEvents) veya LoadPackage(String, IDTSEvents, Boolean) |
SSIS paket depola |
LoadFromDtsServer(String, String, IDTSEvents) |
SQL Server |
LoadFromSqlServer(String, String, String, String, IDTSEvents) |
Important Note: |
---|
Yöntemlerini Applicationyalnızca, paket SSIS depoyu ile çalışmak için sınıf desteği ".", localhost veya sunucu adı için yerel sunucu. "(Yerel)" kullanamazsınız. |
Bir paketin programla çalıştırma
Paket yerel bilgisayarda çalıştırılan yönetilen kod bir özel uygulama geliştirme, aşağıdaki bir yaklaşım gerektirir.Burada özetlenen adımları izleyen örnek konsol uygulamasında gösterildiği.
Paket yerel bilgisayarda program aracılığıyla çalıştırmak için
Visual Studio geliştirme ortamı'nı başlatın ve tercih edilen geliştirme dilinizde yeni bir uygulama oluşturun.Bu örnek, bir konsol uygulaması kullanır; ancak, aynı zamanda bir paket Windows Forms uygulaması, bir ASP.NET Web form veya Web hizmetini veya bir Windows hizmet çalıştırabilirsiniz.
Üzerinde Proje menüsünde tıklatın.Başvuru Ekle ve başvuru ekleyin.Microsoft.SqlServer.ManagedDTS.dll.' I tıklatın SORUNSUZ.
Visual Basic'i kullanın Imports deyim ya da C# using Alınacak deyim Microsoft.SqlServer.dts.Runtime ad alanı.
Aşağıdaki kodu, ana yordamında ekleyin.Tamamlanan konsol uygulaması aşağıdaki gibi görünmelidir:
Not
Örnek kodu kullanarak, dosya sisteminden paket yükleme gösterir LoadPackage(String, IDTSEvents) yöntem. Ancak de paket MSDB veritabanını çaðýrarak yükleyebilirsiniz LoadFromSqlServer(String, String, String, String, IDTSEvents) yöntem veya Integration Services çağırarak, paket deposu LoadFromDtsServer(String, String, IDTSEvents) yöntem.
Projeyi çalıştırın.CalculatedColumns örnek paket ile birlikte yüklenen örnek kodu yürütür SQL Server örneklerini içerir. Paket yürütülmesinin 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();
}
}
}
Çalışan paket gelen olayları yakalanıyor
Önceki örnekte gösterildiği gibi program aracılığıyla bir paket çalıştırdığınızda, hataları ve diğer olayları paket yürütür olarak ortaya çıkan yakalama isteyebilirsiniz.Gelen devralan bir sınıf ekleyerek bu getirebileceğiniz DefaultEvents sınıf ve paket yüklediğinizde o sınıf için bir başvuru ile geçirmeden. Aşağıdaki örnek yalnızca yakalar, ancak OnError(DtsObject, Int32, String, String, String, Int32, String) olay, pek çok olay, DefaultEvents sınıfı, yakalama olanak sağlar.
Paket yerel bilgisayarda programsal olarak çalıştırıp paketi olayları yakalamak için
Önceki örnekte, bu örneğin bir proje oluşturmak için adımları izleyin.
Aşağıdaki kodu, ana yordamında ekleyin.Tamamlanan konsol uygulaması aşağıdaki gibi görünmelidir:
Projeyi çalıştırın.CalculatedColumns örnek paket ile birlikte yüklenen örnek kodu yürütür SQL Server örneklerini içerir. Paket yürütülmesinin sonucu oluşan hataları ile birlikte 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
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();
}
}
}
|