プログラムによる使用可能なパッケージの列挙
プログラムにより Integration Services パッケージを操作する際に、個々のパッケージまたはフォルダが存在するかどうかを判断したり、読み込みと実行が可能な保存済みパッケージを列挙したりする必要がある場合があります。Microsoft.SqlServer.Dts.Runtime 名前空間の Application クラスは、これらの要件を満たすさまざまなメソッドを提供します。
このトピックの内容
パッケージまたはフォルダが存在するかどうかの判断
使用可能なパッケージの列挙
例 (SSIS パッケージ ストア)
例 (SQL Server)
プログラムによるパッケージの読み込みと実行の詳細については、「プログラムによるローカル パッケージの読み込みと実行」および「プログラムによるリモート パッケージの読み込みと実行」を参照してください。プログラムによるパッケージとフォルダの管理の詳細については、「プログラムによるパッケージとフォルダの管理」を参照してください。
このトピックで説明するすべてのメソッドには、Microsoft.SqlServer.ManagedDTS アセンブリへの参照が必要です。この参照を新しいプロジェクトに追加した後、using ステートメントまたは Imports ステートメントを使用して Microsoft.SqlServer.Dts.Runtime 名前空間をインポートします。
重要 |
---|
SSIS パッケージ ストアを操作するための Application クラスのメソッドは、"."、localhost、またはローカル サーバーのサーバー名のみをサポートします。"(local)" は使用できません。 |
パッケージまたはフォルダが存在するかどうかの判断
保存済みのパッケージの読み込みと実行を行う前に、プログラムによってそのパッケージが存在するかどうかを判断するには、次のいずれかのメソッドを呼び出します。
ストレージの場所 |
呼び出すメソッド |
---|---|
SSIS パッケージ ストア |
|
SQL Server |
フォルダに保存されているパッケージを一覧表示する前に、プログラムによりそのフォルダが存在するかどうかを判断するには、次のいずれかのメソッドを呼び出します。
ストレージの場所 |
呼び出すメソッド |
---|---|
SSIS パッケージ ストア |
|
SQL Server |
トップに戻る
使用可能なパッケージの列挙
プログラムにより保存済みパッケージの一覧を取得するには、次のいずれかのメソッドを呼び出します。
ストレージの場所 |
呼び出すメソッド |
---|---|
SSIS パッケージ ストア |
|
SQL Server |
次のサンプルは、これらのメソッドの使用方法を示すコンソール アプリケーションです。
例 (SSIS パッケージ ストア)
GetDtsServerPackageInfos メソッドを使用して、SSIS パッケージ ストアに保存されているパッケージを一覧表示します。SSIS パッケージ ストアによって管理される既定のストレージの場所は、ファイル システムおよび MSDB です。これらの場所の中に、追加の論理フォルダを作成できます。
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();
}
}
}
トップに戻る
例 (SQL Server)
GetPackageInfos メソッドを使用して、SQL Server のインスタンスに保存されている Integration Services パッケージを一覧表示します。
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();
}
}
}
トップに戻る
|