Udostępnij za pośrednictwem


Uruchomienie pakietu SSIS programowo na komputerze lokalnym

Tylko kilka wierszy kod zarządzany i prawidłowe warunki wstępne na komputerze lokalnym można uruchomić pakiet aplikacji niestandardowych.Niestandardowych aplikacji może być aplikacją Windows Forms ASP aplikacji konsoli.Formularz sieci Web lub usługa sieci Web lub usługa systemu Windows.

Ostrzeżenie

Aby uruchomić Integration Services pakietów, jakie potrzebne lub w uprzednio określonym czasie, należy użyć metody, które są opisane w temacie, Pakiety z systemem.

Sekcje w tym temacie

  • Wymagania wstępne dla komputera lokalnego

  • Tworzenie aplikacji ładuje i uruchamia pakiet na komputerze lokalnym

    • Metody, które ładują pakietu

    • Metoda, która uruchamia pakiet

    • Przykład

  • Przechwytywanie zdarzeń z pakietu uruchamianie

Wymagania wstępne dla komputera lokalnego

Pakiet działa na tym samym komputerze co aplikacja, która uruchamia pakiet.W ten sposób podczas ładowania aplikacji pakietu, który jest przechowywane zdalnie na innym komputerze pakiet jest uruchamiany na komputerze lokalnym.

W wyniku ładowanie i uruchamianie pakiet na komputerze lokalnym ma kilka wstępnych:

  • Jeżeli pakiet zawiera odwołania do zasobów zewnętrznych do pakietu, te odwołania musi być prawidłowa na komputerze lokalnym.Odniesienia te obejmują, ciągi połączeń, serwery, plików, kolejki wiadomości i tak dalej.

    Ostrzeżenie

    Jeśli komputer lokalny nie ma prawidłowego odwołania do zasobów zewnętrznych do pakietu, nie można uruchomić pakiet na komputerze lokalnym.Zamiast tego należy się upewnić, że pakiet jest uruchamiany na komputerze zdalnym.Aby uzyskać więcej informacji, zobacz Uruchomienie pakietu SSIS programowo na komputerze zdalnym.

  • Musi mieć uprawnienia, które pakiet wymaga dostępu do źródeł danych i innych zasobów na lub z komputera lokalnego.

  • Można tylko uruchomić pakiet poza środowiskiem rozwoju Business Intelligence Development Studio, na komputerze, na którym Integration Services zainstalowany.

    Ostrzeżenie

    Warunki na SQL Server licencjonowania może nie zezwalać na instalowanie Integration Services na dodatkowych komputerach.(Integration Services jest składnikiem serwera i nie redystrybucyjny do klient lub komputerów lokalnych.) Jeśli Integration Services nie jest i nie może być zainstalowany na komputerze lokalnym musi zapewnić, że pakiet jest uruchamiany na komputerze zdalnym.Aby uzyskać więcej informacji, zobacz Uruchomienie pakietu SSIS programowo na komputerze zdalnym.

Tworzenie aplikacji ładuje i uruchamia pakietu SSIS na komputerze lokalnym

W tym temacie, wszystkie metody, które załadowania i uruchomienia pakietów programowo wymagają odniesienie do Microsoft.SqlServer.ManagedDTS wirtualny plik dziennika.Po dodaniu tego odwołania w nowym projekcie, należy zaimportować Microsoft.SqlServer.Dts.Runtime obszar nazw z C# using instrukcja lub Visual Basic Imports instrukcja.

Metody, które ładują pakietu SSIS

Załadować pakiet programowo na komputerze lokalnym, niezależnie od tego, czy pakiet jest przechowywany lokalnie lub zdalnie, wywołania jednej z metod w poniższej tabela.Wszystkie te metody zwracają Package obiekt, który następnie można uruchomić pakiet lub sprawdzać właściwości pakietu.

Lokalizacja magazynu

Wywołanie metody

Plik

[ M:Microsoft.SqlServer.Dts.Runtime.Application.LoadPackage(System.String,Microsoft.SqlServer.Dts.Runtime.IDTSEvents) ]

— lub —

[ M:Microsoft.SqlServer.Dts.Runtime.Application.LoadPackage(System.String,Microsoft.SqlServer.Dts.Runtime.IDTSEvents,System.Boolean) ]

SSISPakiet magazynu

[ M:Microsoft.SqlServer.Dts.Runtime.Application.LoadFromDtsServer(System.String,System.String,Microsoft.SqlServer.Dts.Runtime.IDTSEvents) ]

UwagaUwaga:
Metody Application klasy do pracy z SSIS pakiet przechowywać tylko pomocy technicznej ".", localhost lub serwera Nazwa serwera lokalnego.Nie można użyć "(local)".

SQL Server

[ M:Microsoft.SqlServer.Dts.Runtime.Application.LoadFromSqlServer(System.String,System.String,System.String,System.String,Microsoft.SqlServer.Dts.Runtime.IDTSEvents) ]

Metoda, która uruchamia pakietu SSIS

Aby uruchomić pakiet programowo na komputerze lokalnym, załaduj pakiet, jak opisano w poprzedniej sekcji, a następnie wywołać Execute metoda pakietu.

Przykład

Poniższa procedura służy do opracowywania aplikacji niestandardowych w kod zarządzany , ładuje i uruchamia pakiet na komputerze lokalnym.Wykonanie tej procedury jest przykładową aplikację konsoli przedstawiono kroki procedury.

Do załadowania i uruchomienia pakiet programowo na komputerze lokalnym

  1. Uruchom Visual Studio środowisko projektowania i tworzenia nowej aplikacji w języku preferowanym rozwoju.

    W tym przykładzie użyto aplikacji konsoli.Można jednak uruchomić pakiet z aplikacją Windows Forms ASP.Formularz sieci Web lub usługa sieci Web lub usługa systemu Windows.

  2. Na projektu menu, kliknij Dodaj odwołanie i Dodaj odwołanie do Microsoft.SqlServer.ManagedDTS.dll.Click OK.

  3. Za pomocą języka Visual Basic Imports instrukcja lub C# using instrukcja do importowania Microsoft.SqlServer.Dts.Runtime obszaru nazw.

  4. W głównym rutynowych Dodaj przykładowy kod znajdujący się w tej procedurze.

    Aplikacji konsoli zakończonych powinien wyglądać przykładowy kod w poniższej sekcji.

    Ostrzeżenie

    Przykładowy kod ilustruje ładowania pakiet z systemu plików za pomocą LoadPackage metoda.Jednak można również ładować pakietu z msdb bazy danych przez wywołanie LoadFromSqlServer metoda, lub z Integration Services pakiet magazynu przez wywołanie LoadFromDtsServer metoda.

  5. Uruchom projekt.

    Przykładowy kod wykonuje CalculatedColumns przykładowy pakiet, który jest instalowany razem z SQL Server próbki.Wynik wykonanie 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 zdarzeń z pakietu SSIS uruchamianie

Po uruchomieniu pakiet programowo, jak pokazano w próbce w poprzedniej sekcji, może również chcesz przechwytywać błędy i innych zdarzeń występujących podczas działania pakiet.Można to osiągnąć przez dodanie klasy, która dziedziczy z DefaultEvents klasy i przechodzącej przez odniesienie do tej klasy podczas ładowania pakiet.Chociaż w poniższym przykładzie przechwytuje tylko OnError zdarzenie, istnieją inne zdarzenia, DefaultEvents Klasa umożliwia możesz przechwytywania.

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

  1. Wykonaj kroki w przykładzie w poprzedniej sekcji, aby utworzyć projekt w tym przykładzie.

  2. W głównym rutynowych Dodaj kod przykładowy, który pojawia się po wykonaniu tej procedury.

    Aplikacji konsoli zakończonych powinna wyglądać jak w następującym przykładzie.

  3. Uruchom projekt.

    Przykładowy kod uruchamia pakiet próbki CalculatedColumns, który jest instalowany z SQL Server próbki.Wynik wykonanie pakiet jest wyświetlany 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();
    }
  }
}
Ikona usług Integration Services (mała)Bieżąco z usług integracji

Najnowsze pliki do pobrania, artykuły, próbki i wideo firmy Microsoft, jak również wybranych rozwiązań ze Wspólnoty, odwiedź witrynę Integration Services strona w witrynie MSDN:


Aby otrzymywać automatyczne powiadomienia dotyczące tych aktualizacji, zasubskrybuj źródła danych RSS dostępne na tej stronie.