プログラムによる使用可能なパッケージの列挙
プログラムにより Integration Services パッケージを操作する際に、個々のパッケージまたはフォルダーが存在するかどうかを判断したり、読み込みと実行が可能な保存済みパッケージを列挙したりする必要がある場合があります。Microsoft.SqlServer.Dts.Runtime 名前空間の Application クラスは、これらの要件を満たすさまざまなメソッドを提供します。
このトピックの内容
パッケージまたはフォルダーが存在するかどうかの判断
使用可能なパッケージの列挙
例 (SSIS パッケージ ストア)
例 (SQL Server)
プログラムによるパッケージの読み込みと実行の詳細については、「ローカル コンピューターでのプログラムによる SSIS パッケージの実行」および「リモート コンピューターでのプログラムによる SSIS パッケージの実行」を参照してください。プログラムによるパッケージとフォルダーの管理の詳細については、「プログラムによるパッケージとフォルダーの管理」を参照してください。
このトピックで説明するすべてのメソッドには、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();
}
}
}
トップに戻る
|