Programmgesteuertes Laden und Ausführen eines lokalen Pakets

 

Gilt für: SQL Server 2016 Preview

Sie können ausführen Integration Services Pakete Bedarf oder zu vorbestimmten Zeiten mit den Methoden, die in beschriebenen ausgeführte Pakete. Mit nur wenigen Codezeilen können Sie ein Paket jedoch auch mit einer benutzerdefinierten Anwendung wie einer Windows Forms-Anwendung, einer Konsolenanwendung, einem Webformular oder Webdienst von ASP.NET oder einem Windows-Dienst ausführen.

In diesem Thema erläutert:

  • Programmgesteuertes Laden eines Pakets

  • Programmgesteuertes Ausführen eines Pakets

Alle Methoden in diesem Thema verwendet, um zu laden und Ausführen von Paketen erfordern einen Verweis auf die Microsoft.SqlServer.ManagedDTS Assembly. Nach dem Hinzufügen des Verweises in einem neuen Projekt importieren der Microsoft.SqlServer.Dts.Runtime Namespace mit einem mit oder Importe Anweisung.

Rufen Sie unabhängig davon, ob ein Paket lokal oder remote gespeichert ist, zum programmgesteuerten Laden des Pakets auf dem lokalen Computer eine der folgenden Methoden auf:

SpeicherortAufzurufende Methode
FileLoadPackage
SSIS-PaketspeicherLoadFromDtsServer
SQL ServerLoadFromSqlServer
System_CAPS_ICON_important.jpg Wichtig


Die Methoden der Anwendung -Klasse zum Arbeiten mit dem SSIS-Paketspeicher unterstützen nur ".", "localhost" oder den Namen für den lokalen Server. Sie können "(local)" nicht verwenden.

Das Entwickeln einer benutzerdefinierten Anwendung in verwaltetem Code zum Ausführen eines Pakets auf dem lokalen Computer erfordert den folgenden Ansatz. Die hier zusammengefassten Schritte werden in dem folgenden Beispiel einer Konsolenanwendung veranschaulicht.

So führen Sie ein Paket auf dem lokalen Computer programmgesteuert aus

  1. Starten Sie die Visual Studio-Entwicklungsumgebung, und erstellen Sie eine neue Anwendung in der gewünschten Entwicklungssprache. In diesem Beispiel wird eine Konsolenanwendung verwendet. Sie können ein Paket jedoch auch mit einer Windows Forms-Anwendung, einem Webformular oder Webdienst von ASP.NET oder einem Windows-Dienst ausführen.

  2. Auf der Projekt Menü klicken Sie auf Verweis hinzufügen und Hinzufügen eines Verweises auf Microsoft.SqlServer.manageddts.dll entspricht. Klicken Sie auf OK.

  3. Mithilfe der Visual Basic Importe -Anweisung oder die C#- mit -Anweisung zum Importieren der Microsoft.SqlServer.Dts.Runtime Namespace.

  4. Fügen Sie den folgenden Code in der Hauptroutine hinzu. Die abgeschlossene Konsolenanwendung sollte wie im folgenden Beispiel dargestellt aussehen.

    System_CAPS_ICON_note.jpg Hinweis


    Im Beispielcode wird das Laden des Pakets aus dem Dateisystem mithilfe der LoadPackage Methode. Aber auch Laden des Pakets aus der MSDB-Datenbank durch Aufrufen kann die LoadFromSqlServer -Methode, oder aus der Integration Services -Paketspeicher durch Aufrufen der LoadFromDtsServer Methode.

  5. Führen Sie das Projekt aus. Der Beispielcode führt das CalculatedColumns-Beispielpaket, die mit installiert wird die SQL Server Beispiele. Das Ergebnis der Paketausführung wird im Konsolenfenster angezeigt.

Beispielcode

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

Wenn Sie ein Paket wie im vorhergehenden Beispiel dargestellt programmgesteuert ausführen, sollten Sie auch zum Erfassen von Fehlern und anderen Ereignissen, die auftreten, da das Paket ausgeführt wird. Sie erreichen dies durch Hinzufügen einer Klasse, die von erben die DefaultEvents Klasse, und durch einen Verweis auf diese Klasse übergeben, wenn Sie das Paket geladen werden. Obwohl im folgenden Beispiel wird nur erfasst der OnError Ereignis, es gibt viele weitere Ereignisse, die DefaultEvents Klasse aufgezeichnet werden können.

So führen Sie ein Paket auf dem lokalen Computer programmgesteuert aus und zeichnen Paketereignisse auf

  1. Führen Sie die Schritte im vorangehenden Beispiel aus, um ein Projekt für dieses Beispiel zu erstellen.

  2. Fügen Sie den folgenden Code in der Hauptroutine hinzu. Die abgeschlossene Konsolenanwendung sollte wie im folgenden Beispiel dargestellt aussehen.

  3. Führen Sie das Projekt aus. Der Beispielcode führt das CalculatedColumns-Beispielpaket, die mit installiert wird die SQL Server Beispiele. Das Ergebnis der Paketausführung wird zusammen mit den aufgetretenen Fehlern im Konsolenfenster angezeigt.

Beispielcode

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)  Informieren Sie sich laufend über Integrationsservices
Die neuesten Downloads, Artikel, Beispiele und Videos von Microsoft sowie ausgewählte Lösungen aus der Community finden Sie auf MSDN auf der Integration Services -Seite:



 Besuchen Sie die Integration Services-Seite auf MSDN

Abonnieren Sie die auf der Seite verfügbaren RSS-Feeds, um automatische Benachrichtigungen zu diesen Updates zu erhalten.

Grundlegendes zu den Unterschieden zwischen lokalen und Remote-Ausführung
Programmgesteuerten laden und Ausführen eines Remotepakets
Laden der Ausgabe eines lokalen Pakets

Community-Beiträge

Anzeigen: