Udostępnij za pośrednictwem


Programistyczne wyliczanie pakietów dostępnych

Podczas pracy programowo z Integration Services pakiets, należy ustalić, czy osoba pakiet lub folder istnieje, lub wyliczyć zapisanego pakiets dostępne do ładowania wykonać.Application Klasy Microsoft.SqlServer.Dts.Runtime nazw udostępnia wiele metod, które spełniają te wymagania.

W tym temacie

  • Określanie, czy istnieje pakiet lub folderu

  • Wyliczanie pakietów dostępnych

    • Przykład (Magazyn pakietu SSIS)

    • Przykład (SQL Server)

Aby uzyskać informacje dotyczące ładowania i uruchamiania pakietów programowo, zobacz Uruchomienie pakietu SSIS programowo na komputerze lokalnym i Uruchomienie pakietu SSIS programowo na komputerze zdalnym.Informacje na temat zarządzania pakietami i foldery programowo, zobacz Programowe zarządzanie pakietami i folderów.

Wszystkie metody omówione w tym temacie wymagają odniesienie 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.

Ważna informacjaWażne:

Metody Application klasy do pracy z magazynu pakietu SSIS obsługuje tylko ".", localhost lub serwera Nazwa serwera lokalnego.Nie można użyć "(local)".

Określanie, czy istnieje pakietu lub folderu

Aby programowo określić, czy pakiet zapisany istnieje, wywołania jednej z następujących metod przed podjęciem próby załadowania i uruchomienia go:

Lokalizacja magazynu

Wywołanie metody

Magazyn pakietu SSIS

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

SQL Server

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

Aby programowo określić, czy istnieje folder przed przystąpieniem do listy pakietów przechowywanych w nim, wywołania jednej z następujących metod:

Lokalizacja magazynu

Wywołanie metody

Magazyn pakietu SSIS

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

SQL Server

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

Powrót do początku

Wyliczanie pakietów dostępnych

Aby uzyskać listę pakietów zapisanych programowo, wywołania jednej z następujących metod:

Lokalizacja magazynu

Wywołanie metody

Magazyn pakietu SSIS

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

SQL Server

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

Następujące próbki są aplikacji konsoli, które demonstrują użycie tych metod.

Przykład (Magazyn pakietu SSIS)

Użyj GetDtsServerPackageInfos metoda listę pakietów przechowywanych w SSIS pakiet magazynu.Domyślne lokalizacje magazynowania, które są zarządzane przez Magazyn pakietu SSIS to System plików i danych MSDB.Można utworzyć dodatkowe foldery logiczne w tych lokalizacjach.

Imports Microsoft.SqlServer.Dts.Runtime

Module Module1

  Sub Main()

    Dim sqlFolder As String
    Dim sqlServer As String

    Dim ssisApplication As Application
    Dim sqlPackages As PackageInfos
    Dim sqlPackage As PackageInfo

    sqlServer = "."

    ssisApplication = New Application()

    ' Get packages stored in MSDB.
    sqlFolder = "MSDB"
    sqlPackages = ssisApplication.GetDtsServerPackageInfos(sqlFolder, sqlServer)
    If sqlPackages.Count > 0 Then
      Console.WriteLine("Packages stored in MSDB:")
      For Each sqlPackage In sqlPackages
        Console.WriteLine(sqlPackage.Name)
      Next
      Console.WriteLine()
    End If

    ' Get packages stored in the File System.
    sqlFolder = "File System"
    sqlPackages = ssisApplication.GetDtsServerPackageInfos(sqlFolder, sqlServer)
    If sqlPackages.Count > 0 Then
      Console.WriteLine("Packages stored in the File System:")
      For Each sqlPackage In sqlPackages
        Console.WriteLine(sqlPackage.Name)
      Next
    End If

    Console.Read()

  End Sub

End Module
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();

    }

  }

}

Powrót do początku

Przykład (SQL Server)

Użyj GetPackageInfos metoda do listy Integration Services pakietów, które są przechowywane w wystąpienie z SQL Server.

Imports Microsoft.SqlServer.Dts.Runtime

Module Module1

  Sub Main()

    Dim sqlFolder As String
    Dim sqlServer As String
    Dim sqlUser As String
    Dim sqlPassword As String

    Dim ssisApplication As Application
    Dim sqlPackages As PackageInfos
    Dim sqlPackage As PackageInfo

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

    ssisApplication = New Application()

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

    For Each sqlPackage In sqlPackages
      Console.WriteLine(sqlPackage.Name)
    Next

    Console.Read()

  End Sub

End Module
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();

    }
  }
}

Powrót do początku

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 na MSDN i TechNet:

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

Zobacz także

Koncepcje