Enumerazione dei pacchetti disponibili a livello di codice
Si applica a: SQL Server SSIS Integration Runtime in Azure Data Factory
Quando si utilizzano i pacchetti di Integration Services a livello di codice, può essere necessario determinare se esiste un singolo pacchetto o cartella o enumerare i pacchetti salvati disponibili per il caricamento e l'esecuzione. La classe Application dello spazio dei nomi Microsoft.SqlServer.Dts.Runtime fornisce un'ampia varietà di metodi e classi per soddisfare questi requisiti.
Determinazione dell'esistenza di un pacchetto o di una cartella
Per determinare a livello di codice se un pacchetto salvato esiste, chiamare uno dei metodi seguenti prima di tentare di caricarlo ed eseguirlo:
Percorso di archiviazione | Metodo da chiamare |
---|---|
Archivio pacchetti SSIS | ExistsOnDtsServer |
SQL Server | ExistsOnSqlServer |
Per determinare a livello di codice se una cartella esiste prima di tentare di elencare i pacchetti archiviati al suo interno, chiamare uno dei metodi seguenti:
Percorso di archiviazione | Metodo da chiamare |
---|---|
Archivio pacchetti SSIS | FolderExistsOnDtsServer |
SQL Server | FolderExistsOnSqlServer |
Enumerazione dei pacchetti disponibili
Per ottenere a livello di codice un elenco dei pacchetti salvati, chiamare uno dei metodi seguenti:
Percorso di archiviazione | Metodo da chiamare |
---|---|
Archivio pacchetti SSIS | GetDtsServerPackageInfos |
SQL Server | GetPackageInfos |
Gli esempi seguenti sono applicazioni console che dimostrano l'utilizzo di questi metodi.
Esempio (archivio pacchetti SSIS)
Utilizzare il metodo GetDtsServerPackageInfos per elencare i pacchetti archiviati nell'archivio pacchetti SSIS. I percorsi di archiviazione predefiniti gestiti dall'archivio pacchetti SSIS sono File system e MSDB. In questi percorsi è possibile creare altre cartelle logiche.
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();
}
}
}
Esempio (SQL Server)
Usare il metodo GetPackageInfos per elencare i pacchetti di Integration Services archiviati in un'istanza di 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();
}
}
}