次の方法で共有


ForEachDirectory サンプル

更新 : 2005 年 12 月 5 日

このサンプル コードでは、.NET Framework とマネージ コードを使用して、カスタム列挙子とカスタム ユーザー インターフェイスを作成して列挙子のプロパティを設定する方法を示します。このサンプルは IA64 ではサポートされていません。

サンプルの実行

コード サンプルの場所、ビルド方法、およびインストール方法を確認済みの場合は、「サンプルのテスト」に進み、コード サンプルの構成方法と実行方法を確認してください。

前提条件

この ForEachDirectory サンプルでは、次のコンポーネントがインストールされている必要があります。

  • .NET Framework SDK 2.0 または Microsoft Visual Studio 2005。.NET Framework SDK は無償で入手できます。詳細については、Books Online のトピック「.NET Framework SDK のインストール」を参照してください。
  • Microsoft SQL Server 2005 Integration Services
ms160909.note(ja-jp,SQL.90).gif重要 :
サンプルは、学習に使用することのみを目的に提供されています。これらは、運用環境での使用を目的としたものではなく、運用環境でのテストも実施されていません。Microsoft からは、これらのサンプルについてのテクニカル サポートは提供されません。

場所

サンプル コードを既定の場所にインストールした場合は、次のディレクトリに配置されています。

C:\Program Files\Microsoft SQL Server\100\Samples\Integration Services\\Programming Samples\Control Flow\ForEachDirectory Sample

サンプル コードの C# ソリューションは CS ディレクトリに、Visual Basic ソリューションは VB ディレクトリにあります。

サンプルをインストールするために必要な 2 つの手順の詳細については、「サンプルのインストール」を参照してください。SQL Server 2005 のオリジナル リリース後にリリースされた新しいサンプルを含む、サンプルの最新バージョンを入手するには、「SQL Server 2005 Samples and Sample Databases (April 2006)」を参照してください。

サンプルのビルド

まだ厳密な名前のキー ファイルを生成していない場合は、次の手順に従ってこのキー ファイルを生成します。

厳密な名前のキー ファイルを生成するには

  1. Microsoft Visual Studio 2005 コマンド プロンプトを開くには、[スタート] ボタンをクリックし、[すべてのプログラム][Microsoft Visual Studio 2005][Visual Studio Tools] の順にポイントして、[Visual Studio 2005 コマンド プロンプト] をクリックします。

    または

    Microsoft .NET Framework コマンド プロンプトを開くには、[スタート] ボタンをクリックし、[すべてのプログラム][Microsoft .NET Framework SDK v2.0] の順にポイントして、[SDK コマンド プロンプト] をクリックします。

  2. コマンド プロンプトでディレクトリ変更 (CD) コマンドを使用して、コマンド プロンプト ウィンドウの現在のフォルダを Samples フォルダに変更します。このフォルダに作成したキー ファイルは、すべての Microsoft SQL Server 2005 コード サンプルで使用されます。

    ms160909.note(ja-jp,SQL.90).gifメモ :
    サンプルが配置されているフォルダを調べるには、[スタート] ボタンをクリックし、[すべてのプログラム][Microsoft SQL Server 2005][マニュアルとチュートリアル] の順にポイントして、[サンプル ディレクトリ] をクリックします。既定のインストール場所を使用している場合、サンプルは <system_drive>:\Program Files\Microsoft SQL Server\90\Samples にあります。
  3. コマンド プロンプトで、次のコマンドを実行してキー ファイルを生成します。

    sn -k SampleKey.snk

    ms160909.note(ja-jp,SQL.90).gif重要 :
    厳密な名前のキー ペアの詳細については、MSDN の .NET Development Center にある「Security Briefs: Strong Names and Security in the .NET Framework」を参照してください。
  4. 後続の手順では、キー ファイルの公開キー トークンが必要になります。公開キー トークンを取得するには、まず、コマンド プロンプトで次のコマンドを実行して、キー ファイルから公開キーを取得します。

    sn -p SampleKey.snk SampleKeyPublic.snk

  5. コマンド プロンプトで次のコマンドを実行して、公開キー トークンを表示します。

    sn -t SampleKeyPublic.snk

  6. 公開キー トークンをクリップボードにコピーするか、後で使用するために保存します。

サンプルをビルドするには

  1. Microsoft Visual Studio 2005 を起動します。

  2. [ファイル] メニューの [開く] をポイントして、[プロジェクト/ソリューション] をクリックし、目的の Samples ディレクトリにある ForEachDirectory.sln を開きます。Samples ディレクトリは、C# 言語の場合は CS、Visual Basic 言語の場合は VB です。

  3. ソリューション エクスプローラで、ForEachDirectory.cs コードまたは ForEachDirectory.vb コードを選択します。

  4. このコード内で DtsTask 属性を探します。IncrementTask.cs のそのコード行で、 UITypeName 属性プロパティの公開キー トークンの既存の値を置き換えます。"PublicKeyToken =" の後の英数字値を、上記の手順で sn -t コマンドを実行して表示した値に置き換えてください。

  5. [ビルド] メニューの [ForEachDirectory のビルド] をクリックして、プロジェクトの DLL をビルドします。

ForEachEnumerator フォルダおよびグローバル アセンブリ キャッシュへの DLL のインストール

サンプルは、Visual Basic と C# のどちらにも提供されます。サンプルのバージョンごとにアセンブリを区別するために、出力アセンブリ名には CS または VB が追加されます。コンポーネントが正常にビルドされたら、Business Intelligence Development Studio で使用するために、コンポーネントを ForEachEnumerators フォルダにコピーし、グローバル アセンブリ キャッシュに追加する必要があります。

コンポーネントを ForEachEnumerators フォルダにインストールするには

  1. アセンブリ (ForeachDirectoryCS.dll または ForeachDirectoryVB.dll) を %system%\Program Files\Microsoft SQL Server\90\DTS\ForEachEnumerators にあるフォルダにコピーします。

  2. グローバル アセンブリ キャッシュのディレクトリ (%system%\assembly) を開きます。ほとんどのコンピュータでは、このディレクトリは C:\Windows\assembly になります。

  3. 最初のウィンドウでアセンブリを選択し、assembly フォルダを含むウィンドウにドラッグ アンド ドロップします。

アセンブリをドラッグ アンド ドロップしてコンポーネントをグローバル アセンブリ キャッシュにインストールするには

  1. アセンブリ (ForeachDirectoryCS.dll または ForeachDirectoryVB.dll) を %system%\Program Files\Microsoft SQL Server\90\DTS\ForEachEnumerators にあるフォルダにコピーします。

  2. グローバル アセンブリ キャッシュのディレクトリ (%system%\assembly) を開きます。ほとんどのコンピュータでは、このディレクトリは C:\Windows\assembly になります。

  3. 最初のウィンドウでアセンブリを選択し、assembly フォルダを含むウィンドウにドラッグ アンド ドロップします。

gacutil.exe を使用してコンポーネントをグローバル アセンブリ キャッシュにインストールするには

  1. [コマンド プロンプト] ウィンドウを開きます。

  2. C# バージョンのコンポーネントとユーザー インターフェイスをグローバル アセンブリ キャッシュにインストールするには、次のコマンドを入力します。

    gacutil.exe -iF "c:\Program Files\Microsoft Sql Server\90\DTS\ ForEachEnumerators\ForEachDirectoryCS.dll"

  3. Visual Basic バージョンのコンポーネントとユーザー インターフェイスをグローバル アセンブリ キャッシュにインストールするには、次のコマンドを入力します。****

    gacutil.exe -iF "c:\Program Files\Microsoft Sql Server\90\DTS\ForeachEnumerators\ForeachDirectoryVB.dll"

   単純化を図るために、このサンプルで使用するユーザー インターフェイスは、タスク コードと同じプロジェクトに入れてあります。このため、ここでは DLL をアセンブリ ディレクトリにコピーするだけで済みます。ユーザー インターフェイスを別のプロジェクトに入れた場合は、コードを含んでいる DLL だけでなく、ユーザー インターフェイスを含んでいる DLL もグローバル アセンブリ キャッシュに追加する必要があります。ただし、特定のディレクトリにコンパイルする必要があるのはコードのみです。

上記の手順を完了すると、Foreach ループ コンテナの Foreach ループ エディタで列挙子が使用できるようになります。

Business Intelligence Development Studio でサンプルを使用するには

  1. Business Intelligence Development Studio を開きます。

  2. [ファイル] メニューの [新規作成] をポイントし、[プロジェクト] をクリックします。

  3. [新しいプロジェクト] ダイアログ ボックスの [プロジェクトの種類][ビジネス インテリジェンス プロジェクト] をクリックし、右側のペインで [Integration Services プロジェクト] をクリックします。

  4. [名前] ボックスで、新しいプロジェクトの名前として「ForEachDirectory」と入力します。

  5. [場所] ボックスで、ファイルを保存する場所を指定します。[OK] をクリックします。

  6. ソリューション エクスプローラで、[Package.dtsx] をダブルクリックします。

  7. [場所] ボックスで、ファイルを保存する場所を指定します。[OK] をクリックします。

  8. ソリューション エクスプローラで、[Package.dtsx] をダブルクリックします。

  9. Foreach ループ コンテナをパッケージの制御フロー画面に追加します。

  10. 上記の手順で追加した Foreach ループ コンテナをダブルクリックして、Foreach ループ エディタを開きます。

  11. [Collection] ノードをクリックし、[Enumerator] ボックスの一覧の [ForEachDirectory enumerator] をクリックします。

  12. ForEachDirectory 列挙子のプロパティの値を指定し、[OK] をクリックします。

サンプルのテスト

サンプル コンポーネントをパッケージのデータ フロー タスクに追加すると、SSIS デザイナでこのコンポーネントを構成することができます。ForEachDirectory 列挙子には、実行動作を制御する 5 つのプロパティがあります。

プロパティ 説明

RootDirectorySource

ConnectionManager、Variable、または DirectInput によって設定できる RootDirectory プロパティのソースを指定します。

RootDirectory

列挙子によって列挙が開始されるディレクトリを指定します。

IncludeRootDirectory

列挙するディレクトリに、ルート ディレクトリを含めるかどうかを指定します。

EnumerateSubFolders

ルート ディレクトリに含まれているフォルダのサブフォルダを列挙するかどうかを指定します。

SiblingFoldersBeforeSubFolders

EnumerateSubFolders が true の場合、列挙子によって最初に兄弟ディレクトリが列挙されるかどうか、または完全なディレクトリ構造が最初に列挙されるかどうかを指定します。

変更履歴

リリース 履歴

2006 年 7 月 17 日

2005 年 12 月 5 日

新しい内容 :
  • Business Intelligence Development Studio でサンプルを使用する方法の説明を追加しました。
  • カスタム ユーザー インターフェイスのプロパティを説明する表を追加しました。