sql-server-2005 – SSIS脚本组件写入变量
这是SQL 2005.
我在数据流任务中有一个脚本组件.我想从输入列中读取并将数据写入全局用户变量. 我已经设置了输入列,并将我的全局用户变量作为ReadWriteVariable添加到脚本组件属性中. 这是我的代码,我只是想在这里改变全局用户变量的值,但它不起作用.当我在另一个任务中写出变量的值时,它仍然具有默认值: Imports System Imports System.Data Imports System.Math Imports Microsoft.SqlServer.Dts.Runtime Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper Imports Microsoft.SqlServer.Dts.Runtime.Wrapper Public Class ScriptMain Inherits UserComponent Dim updateSQL As String Public Sub Main() Dim vars As IDTSVariables90 VariableDispenser.LockOneForWrite("SQL_ATTR_Update",vars) vars("SQL_ATTR_Update").Value = "Test" vars.Unlock() End Sub Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer) 'updateSQL = Row.ITMID + Row.PRCCAT End Sub End Class 我也试过没有运气: Me.ReadWriteVariables("SQL_ATTR_Update").Value = "Test" 解决方法我想到了.来自MS:
http://msdn.microsoft.com/en-us/library/ms136031.aspx 看起来Dts仅在Script Task中可用. 这是代码的样子: Imports System Imports System.Data Imports System.Math Imports Microsoft.SqlServer.Dts.Runtime Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper Imports Microsoft.SqlServer.Dts.Runtime.Wrapper Public Class ScriptMain Inherits UserComponent Dim updateSQL As String Public Overrides Sub PostExecute() Me.ReadWriteVariables("SQL_ATTR_Update").Value = "Test" End Sub Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer) 'updateSQL = Row.ITMID + Row.PRCCAT End Sub End Class (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |