创建自定义增量任务示例

更新日期: 2005 年 12 月 5 日

增量任务示例说明如何以编程方式创建自定义任务及其相关用户界面。基于 Itanium 的操作系统不支持该示例。此代码示例实现了以下功能:

  • 覆盖 Microsoft.SqlServer.Dts.Runtime.Task 基类。
  • 验证。
  • 执行。
  • 持久性支持。
  • 断点支持。
  • 自定义事件。

在执行期间,此特定代码示例将进入一个循环。有一个私有整数变量在每次循环迭代时都会递增。属性 InitialValueIncrementValueLoopCount 将在循环中控制处理过程。这些属性使用由任务实现的自定义用户界面来设置。在变量增加之前和之后都将引发自定义断点 OnBeforeIncrementOnAfterIncrement 及其事件。在执行完任务后,ExecutionResult 属性将包含此内部增加的变量的值。

ms160699.note(zh-cn,SQL.90).gif重要提示:
提供的示例仅供教学使用。这些示例不是针对生产环境设计的,也没有在生产环境中进行测试。对于这些示例,Microsoft 不提供相关的技术支持。

运行示例

如果已经知道如何查找、生成和安装代码示例,则可以直接转到 测试示例部分,阅读有关如何配置和运行代码示例的信息。

必备条件

在运行该代码示例之前,请确保满足以下条件:

  • 必须先将示例包及其相关示例数据安装在本地硬盘上。有关详细信息,请参阅联机丛书主题“安装和编译 Integration Services 编码示例”。
  • Microsoft Visual Studio 2005
  • Microsoft SQL Server 2005 Integration Services

位置

如果代码示例安装到默认位置,则该示例将位于以下目录中:

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

代码示例的 C# 解决方案位于 CS 目录,而 Visual Basic 解决方案位于 VB 目录。

有关安装示例所需的两步过程的详细信息,请参阅 安装示例。若要获取示例的最新版本,包括在最初发布 SQL Server 2005 之后发布的新示例,请参阅 SQL Server 2005 示例和示例数据库(2006 年 4 月)

生成示例

如果尚未在 Samples 文件夹中生成强名称密钥文件,则请使用以下过程生成此密钥文件。在**“项目属性”对话框的“签名”**选项卡中配置示例项目,以在生成时使用此密钥文件对程序集签名。

生成强名称密钥文件

  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 代码示例使用。

    ms160699.note(zh-cn,SQL.90).gif注意:
    若要确定示例所在的文件夹,请单击“开始”,依次指向“所有程序”Microsoft SQL Server 2005“文档和教程”,然后单击“示例目录”。如果使用了默认安装位置,则示例将位于 <system_drive>:\Program Files\Microsoft SQL Server\90\Samples 中。
  3. 在命令提示符下,运行以下命令以生成密钥文件:

    sn -k SampleKey.snk

    ms160699.note(zh-cn,SQL.90).gif重要提示:
    有关强名称密钥对的详细信息,请参阅 MSDN 上 .NET 开发中心中的“安全简讯:.NET Framework 中的强名称和安全性”。
  4. 在后续步骤中,您需要密钥文件中的公钥标记。若要获取公钥标记,请先通过在命令提示符下运行以下命令来提取密钥文件中的公钥:

    sn -p SampleKey.snk SampleKeyPublic.snk

  5. 通过在命令提示符下运行以下命令来显示公钥标记:

    sn -t SampleKeyPublic.snk

  6. 将公钥标记复制到剪贴板中或保存以便将来使用。

生成示例

  1. 打开 Microsoft Visual Studio 2005

  2. 从**“文件”|“打开”菜单中,单击“项目”**并从所需的 Samples 目录中打开 IncrementTask.sln,对于 C# 语言该文件格式为 CS,对于 Visual Basic 该文件格式为 VB。

  3. 在解决方案资源管理器中,选择 IncrementTask.cs 或 IncrementTask.vb 代码。

  4. 在代码中查找 DtsTask 属性。在该代码行中,替换 IncrementTask.cs 中 UITypeName 特性属性的公钥标记的现有值。应使用上一步中显示的值替换“PublicKeyToken =”后面的字母数字值。

  5. 单击菜单上的**“生成”/“生成 IncrementTask”**,以生成该项目的 DLL。

安装示例

同时提供此示例的 Visual Basic 和 C# 版本。为了区分每个示例版本的程序集,在输出程序集的名称中追加有 CS 或 VB。成功生成组件后,在 Business Intelligence Development Studio 中按照以下步骤将其添加为控制流任务。

通过拖放程序集的方式将组件安装到全局程序集缓存中

  1. 将程序集(IncrementTaskCS.dll 或 IncrementTaskVB.dll)复制到位于 %system%\Program Files\Microsoft SQL Server\90\DTS\Tasks 的文件夹中。

  2. 使用另一个窗口打开位于 %system%\assembly 处的全局程序集缓存目录。对于大多数计算机来说,该目录将是 C:\Windows\assembly

  3. 选择第一个窗口中的程序集,然后将其拖放到包含 assembly 文件夹的窗口中。

使用 gacutil.exe 将组件安装到全局程序集缓存中

  1. 打开命令提示符窗口。

  2. 键入以下命令以将 C# 版本的组件和用户界面安装到全局程序集缓存中:

    gacutil.exe -iF "``C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Programming Samples\Control Flow\IncrementTask Sample\CS\bin\Debug\IncrementTaskCS.dll"

  3. 键入以下命令以将 Visual Basic 版本的组件和用户界面安装到全局程序集缓存中:

    gacutil.exe -iF "``C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Programming Samples\Control Flow\IncrementTask Sample\VB\bin\Debug\IncrementTaskVB.dll"

注意 为简化起见,该示例的用户界面已经与任务代码放置到同一个项目,因此,只需将 DLL 复制到程序集目录中即可。如果决定对不同项目中的用户界面进行编码,则除了包含代码的 DLL 外还必须将包含用户界面的 DLL 添加到全局程序集缓存。只需将代码编译到特定目录。

测试示例

可以按照下列步骤在 SSIS 设计器中测试示例任务。

在 Business Intelligence Development Studio 中使用示例

  1. 打开 Business Intelligence Development Studio。

  2. 从菜单中,单击**“文件”/“新建”/“项目”**。

  3. 从**“新建项目”对话框的“项目类型”中,单击“Business Intelligence 项目”,并在右窗格中,单击“Integration Services 项目”**。

  4. 在**“名称”**框中,键入 IncrementTask 作为新项目的名称。

  5. 在**“位置”框中,选择文件的保存位置。单击“确定”**。

  6. 解决方案资源管理器对话框中,双击 Package.dtsx。

  7. 在**“控制流项”工具箱中,右键单击列出“控制流项”的区域中的任何位置。单击“选择项”**。

  8. 单击**“SSIS 控制流项”选项卡。向下滚动并选中 IncrementTaskCS 或 IncrementTaskVB 项。单击“确定”IncrementTask 任务现在应显示在“控制流项”**工具箱中。

  9. 通过双击任务或将任务拖动到**“控制流”**图面,将 IncrementTask 添加到包的控制流图面。

  10. 当任务位于设计图面之后,双击该任务以打开编辑器。将**“循环计数”设置为 5,将“增量值”**设置为 1。

  11. 单击**“完成”**。

  12. 运行包。

  13. 包完成之后,在设计器中查看**“执行结果”**选项卡。

更改历史记录

发布日期 历史记录

2005 年 12 月 5 日

更改的内容:
  • 添加了用于创建密钥的步骤。