如何通过使用脚本任务在 SQL Server 2005 集成服务包中将信息写入应用程序事件日志

文章翻译 文章翻译
文章编号: 906560 - 查看本文应用于的产品
展开全部 | 关闭全部

概要

当您使用 Microsoft SQL Server 商业智能开发工作室创建 Microsoft SQL Server 2005 集成服务 (SSIS) 包时,您可以包括脚本任务中 SSIS 包来执行任务。

例如对于任务可能会在 Windows 应用程序事件日志写入变量的信息的集合。您可以创建一个包含数据流任务的 SSIS 包。此数据流任务包括行计数转换。您可以使用脚本任务已填充的行计数转换到 Windows 应用程序事件日志将数据写入。

本文介绍如何将信息写入 Windows 应用程序事件日志中使用脚本任务。

更多信息

本示例假定您已在 SSIS 包中创建以下元素:
  • 数据流任务
  • 脚本任务
  • 脚本任务连接符从数据流任务
  • 在数据流任务中,您将创建数据流中的行计数转换。
当您执行文件包转换返回您要向 Windows 应用程序事件日志中写入行计数数据的行数。

要这样做请按照下列步骤中在 SQL Server 商业智能开发工作室:
  1. 激活 控制流 选项卡时用鼠标右键单击设计曲面图,然后单击 变量变量 窗口将显示在左窗格中。
  2. 变量 窗口中单击添加一个名为 mycount 的变量的 添加变量。默认状态下,新 mycount 变量的数据类型是 Int32

    注意引用的变量名称是区分大小写的。
  3. 双击 数据流 任务。此时将出现 数据流 选项卡。
  4. 双击 行计数 转换。 在 高级编辑器 对话框。
  5. 设置为 mycountVariableName 属性的值。
  6. 单击 控制流 选项卡,然后双击 脚本任务。在 脚本任务编辑器 对话框。
  7. 单击在左窗格中的 脚本 项,然后更改为以下值的 ReadOnlyVariables 属性的值:
    PackageName,StartTime,ExecutionInstanceGUID,mycount
    笔记 的 PackageName、 开始时间,和 ExecutionInstanceGUID 项是系统变量。这些系统变量用于包信息写入 Windows 应用程序事件日志。
  8. 脚本任务编辑器 对话框中单击 设计脚本
  9. 请确保您在任何其他声明之前的代码中包含下列命名空间:
    Imports System
    Imports System.Data
    Imports System.Math
    Imports System.Diagnostics
    Imports Microsoft.SqlServer.Dts.Runtime
  10. 时将出现一个新的 Microsoft Visual Studio 为应用程序 窗口用在 main () 方法的代码替换下面的代码示例
    	Dim varMyCount As Variable = Dts.Variables("mycount") '
    	Dim varPackageName As Variable = Dts.Variables("PackageName")
    	Dim varStartTime As Variable = Dts.Variables("StartTime")
    	Dim varInstanceID As Variable = Dts.Variables("ExecutionInstanceGUID")
    	Dim PackageDuration As Long
    
    	'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    	' Event log needs
    	'>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    	Dim sSource As String
    	Dim sLog As String
    	Dim sEventMessage As String
    	Dim sMachine As String
    	'<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
    
    	PackageDuration = DateDiff("s", varStartTime.Value, Now())
    
    	sSource = "RowCountReporting from SSIS"
    
    	' We need the message posted to the Application event log.
    	
    	sLog = "Application"
    	sEventMessage = "Rows Processed: " & Chr(10) _
    	& "     case Rows:" + varMyCount.Value().ToString + Chr(10) _
    	& "=============================================" & Chr(10) _
    	& "The Package: " + varPackageName.Value().ToString _
    	& Chr(10) _
    	& "Started: " & varStartTime.Value().ToString _
    	& Chr(10) _
    	& "Current Time:" & System.DateTime.Now _
    	& Chr(10) _
    	& "=============================================" _
    	& Chr(10) _
    	& "Package Run Duration in seconds: " & PackageDuration _
    	& Chr(10) _
    	& "Execution GUID: " & varInstanceID.Value().ToString
    	sMachine = "."
    
    	If Not EventLog.SourceExists(sSource, sMachine) Then
    	    EventLog.CreateEventSource(sSource, sLog, sMachine)
    	End If
    
    	Dim ELog As New EventLog(sLog, sMachine, sSource)
    
    	ELog.WriteEntry(sEventMessage, EventLogEntryType.Information, 777, 2)
    
    	'###############################
    	Dts.TaskResult = Dts.Results.Success
  11. 关闭 Microsoft Visual Studio 应用程序的 窗口。
  12. 脚本任务编辑器 对话框中单击 确定
  13. F5 执行包。
包成功运行时, 在 Windows 应用程序事件日志中会显示与以下内容类似的信息:

事件类型: 信息
从 SSIS 的事件源: RowCountReporting
事件类别: 磁盘
事件 ID: 777
日期: 10 2005/8 /
时间: 11:30:51 PM
用户: 不适用
ComputerName 的计算机:
说明:
已处理的行数:
情况 3 行:
=============================================
打包: RowCountsInEventLog
启动: 9/14/2005年 2:27:19 PM
当前时间: 9/14/2005年 2:27:19 PM
=============================================
包运行持续时间以秒为单位): 0
执行 GUID: {07406D68-487F-4733-BA3A-DA66A8AF7EFA}

有关详细的信息在 http://support.microsoft.com 看到帮助和支持中心。

参考

更多的信息,请参阅下面的 Microsoft SQL Server 2005 联机丛书中的主题:
  • 脚本任务
  • 编程脚本任务
  • 如何: 设置任务属性使用任务编辑器
有关如何通过使用 Microsoft Visual Basic 写入 Windows 应用程序事件日志的详细信息请访问下面的 Microsoft 开发人员网络 (MSDN) 的网站:
http://msdn.microsoft.com/en-us/library/07347hdt.aspx

属性

文章编号: 906560 - 最后修改: 2006年9月22日 - 修订: 3.2
这篇文章中的信息适用于:
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • Microsoft SQL Server 2005 Standard Edition
关键字:?
kbmt kbsql2005ssis kbhowto KB906560 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 906560
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com