Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: SQL Server
SSIS Integration Runtime em Azure Data Factory
À medida que trabalha programaticamente com pacotes de Serviços de Integração, pode querer determinar se existe um pacote ou pasta individual, ou enumerar os pacotes guardados disponíveis para carregar e executar. A Application classe do Microsoft.SqlServer.Dts.Runtime namespace fornece uma variedade de métodos para satisfazer estes requisitos.
Determinar se existe um pacote ou uma pasta
Para determinar programaticamente se existe um pacote guardado, chame um dos seguintes métodos antes de tentar carregá-lo e executá-lo:
| Localização de Armazenamento | Método de Chamada |
|---|---|
| Loja de Pacotes SSIS | ExistsOnDtsServer |
| SQL Server | ExistsOnSqlServer |
Para determinar programaticamente se existe uma pasta antes de tentar listar os pacotes armazenados nela, chame um dos seguintes métodos:
| Localização de Armazenamento | Método de Chamada |
|---|---|
| Loja de Pacotes SSIS | FolderExistsOnDtsServer |
| SQL Server | FolderExistsOnSqlServer |
Enumeração de Pacotes Disponíveis
Para obter uma lista de pacotes guardados programaticamente, chame um dos seguintes métodos:
| Localização de Armazenamento | Método de Chamada |
|---|---|
| Loja de Pacotes SSIS | GetDtsServerPackageInfos |
| SQL Server | GetPackageInfos |
Os exemplos seguintes são aplicações de consola que demonstram a utilização destes métodos.
Exemplo (Loja de Pacotes SSIS)
Use o GetDtsServerPackageInfos método para listar pacotes armazenados na Loja de Pacotes SSIS. Os locais de armazenamento predefinidos geridos pelo armazenamento de pacotes SSIS são o Sistema de Ficheiros e o MSDB. Pode criar pastas lógicas adicionais dentro dessas localizações.
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();
}
}
}
Exemplo (SQL Server)
Use o GetPackageInfos método para listar pacotes de Serviços de Integração que são armazenados numa instância do 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();
}
}
}