共用方式為


ForEachDirectory 範例

更新: 2005 年 12 月 5 日

這個程式碼範例示範如何建立自訂列舉值和自訂使用者介面,來使用 .NET Framework 和 Managed 程式碼設定列舉值的屬性。IA64 不支援此範例。

執行範例

如果您已經知道如何找出、建置和安裝程式碼範例,可以直接跳至<測試範例>一節,閱讀有關如何設定與執行程式碼範例的內容。

必要條件

ForEachDirectory 範例需要安裝下列元件。

  • .NET Framework SDK 2.0 或 Microsoft Visual Studio 2005。您可以免費取得 .NET Framework SDK。請參閱《線上叢書》主題<安裝 .NET Framework SDK>。
  • Microsoft SQL Server 2005 Integration Services
ms160909.note(zh-tw,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 目錄中。

如需有關安裝範例所需執行之兩個步驟程序的詳細資訊,請參閱<安裝範例>。若要取得最新版的範例,包括自 SQL Server 2005 原始發行版本以來所發佈的新範例,請參閱<SQL Server 2005 範例與範例資料庫 (2006 年 4 月)>(英文)。

建立範例

如果您尚未產生強式名稱金鑰檔,請使用下列程序來產生此金鑰檔。

若要產生強式名稱金鑰檔

  1. 若要開啟 Microsoft Visual Studio 2005 命令提示字元,請按一下 [開始],依序指向 [所有程式][Microsoft Visual Studio 2005][Visual Studio 工具],然後按一下 [Visual Studio 2005 命令提示字元]

    - 或 -

    若要開啟 Microsoft .NET Framework 命令提示字元,請按一下 [開始],依序指向 [所有程式][Microsoft .NET Framework SDK 2.0],然後按一下 [SDK 命令提示字元]

  2. 在命令提示字元中,使用變更目錄 (CD) 命令,將 [命令提示字元] 視窗的目前資料夾變更為 Samples 資料夾。您在此資料夾建立的金鑰檔將供所有 Microsoft SQL Server 2005 程式碼範例使用。

    ms160909.note(zh-tw,SQL.90).gif附註:
    若要判斷範例所在的資料夾,按一下 [開始],依序指向 [所有程式][Microsoft SQL Server 2005][文件集和教學課程],然後按一下 [範例目錄]。如果是使用預設安裝位置,則範例位於 <system_drive>:\Program Files\Microsoft SQL Server\90\Samples。
  3. 在命令提示字元中,執行下列其中一個命令來產生金鑰檔:

    sn -k SampleKey.snk

    ms160909.note(zh-tw,SQL.90).gif重要事項:
    如需有關強式名稱金鑰組的詳細資訊,請參閱 MSDN 中 .NET Development Center 中的<Security Briefs: Strong Names and Security in the .NET Framework>。
  4. 在後續步驟中,您需要金鑰檔的公開金鑰 Token。若要取得公開金鑰 Token,請在命令提示字元中執行下列命令,先從金鑰檔擷取公開金鑰:

    sn -p SampleKey.snk SampleKeyPublic.snk

  5. 在命令提示字元中執行下列命令來顯示公開金鑰 Token:

    sn -t SampleKeyPublic.snk

  6. 將公開金鑰 Token 複製到剪貼簿,或儲存起來供以後使用。

若要建立範例

  1. 開啟 [Microsoft Visual Studio 2005]

  2. [檔案] | [開啟] 功能表上,按一下 [專案],然後在所要的 Samples 目錄 (C# 語言為 CS 目錄,Visual Basic 語言則為 VB 目錄) 中開啟 ForEachDirectory.sln。

  3. 在 [方案總管] 中,選取 ForEachDirectory.cs 或 ForEachDirectory.vb 程式碼。

  4. 在此程式碼中,尋找 DtsTask 屬性。在該程式碼行中,取代 IncrementTask.cs 中 UITypeName 屬性內容之公開金鑰 Token 的現有值。在 "PublicKeyToken =" 之後的英數字元值應該取代成上一個步驟的 sn -t 命令所顯示的值。

  5. 按一下功能表上的 [建立] / [建立 ForEachDirectory],來建立專案的 DLL。

將 DLL 安裝到 ForEachEnumerator 資料夾和全域組件快取 (GAC) 中

Visual Basic 和 C# 中都提供了此範例。為了區別每版範例的組件,輸出組件的名稱附加了 CS 或 VB。成功建立元件之後,該元件必須複製到 ForEachEnumerators 資料夾,然後加入至全域組件快取 (GAC) 中,才能在 Business Intelligence Development Studio 使用它。

若要將元件安裝到 ForEachEnumerators 資料夾

  1. 將組件 (ForeachDirectoryCS.dll 或 ForeachDirectoryVB.dll) 複製到位於 %system%\Program Files\Microsoft SQL Server\90\DTS\ForEachEnumerators 的資料夾。

  2. 開啟位於 %system%\assembly 的全域組件快取 (GAC) 目錄。對於大部分電腦.這將是 C:\Windows\assembly

  3. 在第一個視窗中選取組件,然後將其拖放至包含 assembly 資料夾的視窗中。

若要透過拖放組件將元件安裝於全域組件快取 (GAC)

  1. 將組件 (ForeachDirectoryCS.dll 或 ForeachDirectoryVB.dll) 複製到位於 %system%\Program Files\Microsoft SQL Server\90\DTS\ForEachEnumerators 的資料夾。

  2. 開啟位於 %system%\assembly 的全域組件快取 (GAC) 目錄。對於大部分電腦.這將是 C:\Windows\assembly

  3. 在第一個視窗中選取組件,然後將其拖放至包含 assembly 資料夾的視窗中。

若要使用 gacutil.exe 將元件安裝於全域組件快取 (GAC)

  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 加入全域組件快取 (GAC) 中。但是,只有程式碼需要編譯至特定的目錄中。

在完成這些步驟之後,For Each 迴圈容器的 [For Each 迴圈編輯器] 會提供列舉值。

若要在 Business Intelligence Development Studio 中使用範例

  1. 開啟 [Business Intelligence Development Studio]。

  2. 在功能表中,按一下 [檔案/新增/專案]

  3. [新增專案] 對話方塊的 [專案類型] 中,按一下 [商務智慧專案],然後在右窗格中按一下 [Integration Services 專案]

  4. [名稱] 方塊中,輸入 ForEachDirectory 作為新專案的名稱。

  5. [位置] 方塊中,選取要儲存檔案的位置。按一下 [確定]

  6. [方案總管] 對話方塊中,按兩下 Package.dtsx。

  7. [位置] 方塊中,選取要儲存檔案的位置。按一下 [確定]

  8. [方案總管] 對話方塊中,按兩下 Package.dtsx。

  9. 將 ForEachLoop 容器加入封裝的 [控制流程] 介面中。

  10. 按兩下在第一個步驟加入的 ForEachLoop 容器,來開啟 Foreach Loop Editor。

  11. 按一下 [集合] 節點,並從 [列舉值] 下拉功能表中選取 ForEachDirectory 列舉值。

  12. 指定 ForEachDirectory 列舉值的屬性值,然後按一下 [確定]

測試範例

將範例元件加入至封裝中的「資料流程」工作之後,就可以在 SSIS 設計師中進行設定。ForEachDirectory 列舉值有五個屬性控制其執行行為。

屬性 描述

RootDirectorySource

指定 RootDirectory 屬性的來源,該屬性可由 ConnectionManager、Variable 或 DirectInput 設定。

RootDirectory

指定列舉值開始列舉的目錄。

IncludeRootDirectory

指定根目錄是否包含在列舉的目錄中。

EnumerateSubFolders

指定根目錄所包含之資料夾的子資料夾是否會列舉。

SiblingFoldersBeforeSubFolders

當 EnumerateSubFolders 為 true,指定列舉值是否先列舉同層級資料夾,或先列舉完整目錄結構。

變更歷程記錄

版本 歷程記錄

2006 年 7 月 17 日

2005 年 12 月 5 日

新增內容:
  • 已包含有關在 Business Intelligence Development Studio 中如何使用範例的指示。
  • 新增資料表描述自訂使用者介面中找到的屬性。