Udostępnij za pośrednictwem


Ładowanie i programowo uruchomiony pakiet lokalny

Można uruchomić Integration Services pakiety jako wymagane, albo na wstępnie określone godziny przy użyciu metod opisanych w Uruchamianie pakiety.Jednakże zawierającym tylko kilka wierszy kodu, można również uruchomić pakiet z niestandardowej aplikacji, takich jak aplikacja Windows Forms, aplikacji konsoli, formularz programu ASP.NET sieci Web lub usługa sieci Web lub usługa systemu Windows.

W tym temacie omówiono:

  • Ładowanie programowo pakiet

  • Programowo uruchomiony pakiet

Wszystkie metody używane w tym temacie do załadowania i uruchomienia pakietów wymagają odwołania do Microsoft.SqlServer.ManagedDTS wirtualny plik dziennika. Po dodaniu odwołania w nowym projekcie, należy zaimportować Microsoft.SqlServer.Dts.Runtime obszar nazw z using lub Imports Instrukcja.

Ładowanie pakiet programowe

Aby załadować pakiet programowo na komputerze lokalnym, czy pakiet jest przechowywany lokalnie lub zdalnie, wywołaj jedną z następujących metod:

Lokalizacja przechowywania

Metoda służąca do wywołania

Oznacza to, można użyć tego narzędzie jako klient kontrola urządzenie źródłowe od swojego dostawca.

LoadPackage(String, IDTSEvents)

lub

LoadPackage(String, IDTSEvents, Boolean)

Magazyn pakiet SSIS

LoadFromDtsServer(String, String, IDTSEvents)

SQL Server

LoadFromSqlServer(String, String, String, String, IDTSEvents)

Important noteImportant Note:

Metody Applicationobsługują tylko klasy do pracy z magazynu pakiet SSIS ".", localhost lub serwer nazw dla serwera lokalnego. Nie można użyć "(local)".

Uruchomiony pakiet programowe

Opracowywania aplikacji niestandardowych w zarządzanym kodem, który będzie uruchamiany pakiet na komputerze lokalnym wymaga następujących podejścia.W tym miejscu podsumowania czynności są pokazano w przykładowej aplikacji konsoli, który następuje.

Aby uruchomić pakiet programowo na komputerze lokalnym

  1. Uruchom środowiska programistycznego Visual Studio i utworzyć nową aplikację w rozwoju preferowany język.W poniższym przykładzie za pomocą aplikacji konsoli; jednakże można także uruchomić pakiet z aplikacji Windows Forms, formularz programu ASP.NET sieci Web lub usługa sieci Web lub usługa systemu Windows.

  2. Na Projekt menu kliknijDodaj odwołanie i Dodaj odwołanie do Microsoft.SqlServer.ManagedDTS.dll.Kliknij przycisk OK.

  3. Za pomocą języka Visual Basic Imports Instrukcja lub C# using instrukcję, aby zaimportować Microsoft.SqlServer.dts.Runtime obszar nazw.

  4. Dodaj następujący kod w głównej procedury.Aplikacja konsoli zakończonych powinien wyglądać w poniższym przykładzie.

    Uwaga

    Przykładowy kod demonstruje ładowania pakiet z systemu plików przy użyciu LoadPackage(String, IDTSEvents) Metoda. Jednak można również ładować pakietu z bazy danych MSDB, wywołując LoadFromSqlServer(String, String, String, String, IDTSEvents) Metoda, lub z Integration Services pakiet magazynu, wywołując LoadFromDtsServer(String, String, IDTSEvents) Metoda.

  5. Uruchom projekt.Przykładowy kod jest wykonywany pakiet próbki CalculatedColumns, który jest instalowany z SQL Server próbki. Wynikiem wykonania pakiet jest wyświetlany w oknie konsoli.

Przykładowy 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();
    }
  }
}

Przechwytywanie zdarzenia z pakiet pracy

Po uruchomieniu pakietu programowo, jak pokazano w poprzednim przykładzie, również można przechwytywać błędy i inne zdarzenia występujące, gdy pakiet jest wykonywana.Można to osiągnąć przez dodanie klasy, która dziedziczy DefaultEvents Klasa i przez przekazując załadować pakiet odwołanie do tej klasy. Mimo że w poniższym przykładzie przechwytuje jedynie OnError(DtsObject, Int32, String, String, String, Int32, String) zdarzenie, występują inne zdarzenie, DefaultEvents Klasa pozwala przechwytywać.

Aby uruchomić pakiet na komputerze lokalnym programowo i przechwytywania zdarzeń pakietu

  1. Wykonaj kroki opisane w poprzednim przykładzie, aby utworzyć projekt w tym przykładzie.

  2. Dodaj następujący kod w głównej procedury.Aplikacja konsoli zakończonych powinien wyglądać w poniższym przykładzie.

  3. Uruchom projekt.Przykładowy kod jest wykonywany pakiet próbki CalculatedColumns, który jest instalowany z SQL Server próbki. Wynikiem wykonania pakiet jest wyświetlany znajdujących się w oknie konsoli i wszystkie błędy.

Przykładowy 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) Konfiguracja w aktualizacji z usług integracja Services pobytu

Najnowsze pliki do pobrania, artykuły, próbki, i pliki wideo firmy Microsoft, jak również wybranego rozwiązania od Wspólnoty, odwiedź witrynę Integration Services strona w witrynie MSDN lub TechNet:

Automatycznego powiadomienie tych aktualizacji należy subskrybować źródła danych RSS, które jest dostępne strona.