Programmatisch beschikbare pakketten inventariseren

Van toepassing op:SQL Server SSIS Integration Runtime in Azure Data Factory

Terwijl je programmatisch werkt met Integration Services-pakketten, wil je misschien bepalen of er een individueel pakket of map bestaat, of de opgeslagen pakketten opsommen die beschikbaar zijn om te laden en uit te voeren. De Application klasse van de Microsoft.SqlServer.Dts.Runtime namespace biedt een verscheidenheid aan methoden om aan deze eisen te voldoen.

Bepalen of er een pakket of map bestaat

Om programmatisch te bepalen of een opgeslagen pakket bestaat, roep een van de volgende methoden aan voordat je probeert het te laden en uit te voeren:

Opslaglocatie Methode om te roepen
SSIS Package Store ExistsOnDtsServer
SQL Server ExistsOnSqlServer

Om programmatisch te bepalen of er een map bestaat voordat je probeert de opgeslagen pakketten te vermelden, roep een van de volgende methoden aan:

Opslaglocatie Methode om te roepen
SSIS Package Store FolderExistsOnDtsServer
SQL Server FolderExistsOnSqlServer

Terug naar boven

Beschikbare pakketten opsommen

Om programmatisch een lijst van opgeslagen pakketten te verkrijgen, roep een van de volgende methoden aan:

Opslaglocatie Methode om te roepen
SSIS Package Store GetDtsServerPackageInfos
SQL Server GetPackageInfos

De volgende voorbeelden zijn consoleapplicaties die het gebruik van deze methoden demonstreren.

Voorbeeld (SSIS Package Store)

Gebruik de GetDtsServerPackageInfos methode om pakketten te vermelden die zijn opgeslagen in de SSIS Package Store. De standaard opslaglocaties die door de SSIS-pakketopslag worden beheerd, zijn File System en MSDB. Je kunt extra logische mappen aanmaken binnen deze locaties.

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

Terug naar boven

Voorbeeld (SQL Server)

Gebruik de GetPackageInfos methode om Integration Services-pakketten te vermelden die zijn opgeslagen in een instantie van 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();    
    
    }    
  }    
}    

Terug naar boven