Programmgesteuertes Auflisten verfügbarer Pakete

Programmgesteuertes Auflisten verfügbarer Pakete

 

Wenn Sie programmgesteuert mit Integration Services-Paketen arbeiten, möchten Sie u. U. bestimmen, ob ein einzelnes Paket oder ein einzelner Ordner vorhanden ist, oder die gespeicherten Pakete auflisten, die zum Laden und Ausführen verfügbar sind. Die T:Microsoft.SqlServer.Dts.Runtime.Application-Klasse des N:Microsoft.SqlServer.Dts.Runtime-Namespace stellt eine Reihe von Methoden bereit, um diese Anforderungen zu erfüllen.

Informationen zum programmgesteuerten Laden und Ausführen von Paketen finden Sie unter Programmgesteuertes Laden und Ausführen eines lokalen Pakets und Programmgesteuertes Laden und Ausführen eines Remotepakets. Informationen zur programmgesteuerten Verwaltung von Paketen und Ordnern finden Sie unter Programmgesteuerte Verwaltung von Paketen und Ordnern.

Alle in diesem Thema erläuterten Methoden erfordern einen Verweis auf die Microsoft.SqlServer.ManagedDTS-Assembly. Nachdem Sie den Verweis in einem neuen Projekt hinzugefügt haben, importieren Sie den N:Microsoft.SqlServer.Dts.Runtime-Namespace mit einer using- oder Imports-Anweisung.

System_CAPS_ICON_important.jpg Wichtig


Die Methoden der T:Microsoft.SqlServer.Dts.Runtime.Application-Klasse zum Arbeiten mit dem SSIS-Paketspeicher unterstützen nur ".", localhost oder den Namen des lokalen Servers. Sie können "(local)" nicht verwenden.

Um programmgesteuert zu ermitteln, ob ein gespeichertes Paket vorhanden ist, rufen Sie eine der folgenden Methoden auf, bevor Sie versuchen, es zu laden und auszuführen:

SpeicherortAufzurufende Methode
SSIS-PaketspeicherM:Microsoft.SqlServer.Dts.Runtime.Application.ExistsOnDtsServer(System.String,System.String)
SQL ServerM:Microsoft.SqlServer.Dts.Runtime.Application.ExistsOnSqlServer(System.String,System.String,System.String,System.String)

Um programmgesteuert zu ermitteln, ob ein Ordner vorhanden ist, rufen Sie eine der folgenden Methoden auf, bevor Sie versuchen, die darin gespeicherten Pakete aufzulisten:

SpeicherortAufzurufende Methode
SSIS-PaketspeicherM:Microsoft.SqlServer.Dts.Runtime.Application.FolderExistsOnDtsServer(System.String,System.String)
SQL ServerM:Microsoft.SqlServer.Dts.Runtime.Application.FolderExistsOnSqlServer(System.String,System.String,System.String,System.String)

Zurück zum Anfang

Rufen Sie eine der folgenden Methoden auf, um eine Liste von gespeicherten Paketen programmgesteuert abzurufen:

SpeicherortAufzurufende Methode
SSIS-PaketspeicherM:Microsoft.SqlServer.Dts.Runtime.Application.GetDtsServerPackageInfos(System.String,System.String)
SQL ServerM:Microsoft.SqlServer.Dts.Runtime.Application.GetPackageInfos(System.String,System.String,System.String,System.String)

Die folgenden Beispiele sind Konsolenanwendungen, die die Verwendung dieser Methoden veranschaulichen.

Beispiel (SSIS-Paketspeicher)

Verwenden Sie die M:Microsoft.SqlServer.Dts.Runtime.Application.GetDtsServerPackageInfos(System.String,System.String)-Methode, um im SSIS-Paketspeicher gespeicherte Pakete aufzulisten. Die Standardspeicherorte, die vom SSIS-Paketspeicher verwaltet werden, sind "Dateisystem" und "MSDB". Sie können zusätzliche logische Ordner innerhalb dieser Speicherorte erstellen.

using System;
using Microsoft.SqlServer.Dts.Runtime;

namespace EnumeratePackagesSSIS_CS
{
  class Program
  {
    static void Main(string[] args)
    {

      string sqlFolder;
      string sqlServer;

      Application ssisApplication;
      PackageInfos sqlPackages;

      sqlServer = ".";

      ssisApplication = new Application();

      // Get packages stored in MSDB.
      sqlFolder = "MSDB";
      sqlPackages = ssisApplication.GetDtsServerPackageInfos(sqlFolder, sqlServer);
      if (sqlPackages.Count > 0)
      {
        Console.WriteLine("Packages stored in MSDB:");
        foreach (PackageInfo sqlPackage in sqlPackages)
        {
          Console.WriteLine(sqlPackage.Name);
        }
        Console.WriteLine();
      }

      // Get packages stored in the File System.
      sqlFolder = "File System";
      sqlPackages = ssisApplication.GetDtsServerPackageInfos(sqlFolder, sqlServer);
      if (sqlPackages.Count > 0)
      {
        Console.WriteLine("Packages stored in the File System:");
        foreach (PackageInfo sqlPackage in sqlPackages)
        {
          Console.WriteLine(sqlPackage.Name);
        }
      }

      Console.Read();

    }

  }

}

Zurück zum Anfang

Beispiel (SQL Server)

Verwenden Sie die M:Microsoft.SqlServer.Dts.Runtime.Application.GetPackageInfos(System.String,System.String,System.String,System.String)-Methode, um Integration Services-Pakete aufzulisten, die in einer Instanz von SQL Server gespeichert sind.

using System;
using Microsoft.SqlServer.Dts.Runtime;

namespace EnumeratePackagesSql_CS
{
  class Program
  {
    static void Main(string[] args)
    {

      string sqlFolder;
      string sqlServer;
      string sqlUser;
      string sqlPassword;

      Application ssisApplication;
      PackageInfos sqlPackages;

      sqlFolder = String.Empty;
      sqlServer = "(local)";
      sqlUser = String.Empty;
      sqlPassword = String.Empty;

      ssisApplication = new Application();

      sqlPackages = ssisApplication.GetPackageInfos(sqlFolder, sqlServer, sqlUser, sqlPassword);

      foreach (PackageInfo sqlPackage in sqlPackages)
      {
        Console.WriteLine(sqlPackage.Name);
      }

      Console.Read();

    }
  }
}

Zurück zum Anfang

Integration Services icon (small)  Bleiben Sie mit Integration Services auf dem neuesten Stand
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.

Paketverwaltung (SSIS-Dienst)

Anzeigen:
© 2016 Microsoft