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 noteImportant 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

  1. 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.

  2. Üzerinde Proje menüsünde tıklatın.Başvuru Ekle ve başvuru ekleyin.Microsoft.SqlServer.ManagedDTS.dll.' I tıklatın SORUNSUZ.

  3. Visual Basic'i kullanın Imports deyim ya da C# using Alınacak deyim Microsoft.SqlServer.dts.Runtime ad alanı.

  4. 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.

  5. 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

  1. Önceki örnekte, bu örneğin bir proje oluşturmak için adımları izleyin.

  2. Aşağıdaki kodu, ana yordamında ekleyin.Tamamlanan konsol uygulaması aşağıdaki gibi görünmelidir:

  3. 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();
    }
  }
}
Integration Services icon (small) Tümleştirme Hizmetleri ile güncel kalın

Karşıdan yüklemeler, makaleleri, örnekler ve en son Microsoft video yanı sıra, seçili topluluğun çözümleri için ziyaret Integration Services sayfa MSDN veya TechNet:

Bu güncelleştirmelerin otomatik bildirim için kullanılabilir RSS akışlarına abone olmak sayfa.