Sql server 2005 为SSIS脚本组件新输出列赋值
我相信这是一个简单的问题,但我正在尝试将两列合并到一个新的输出列中,但没有任何运气。每次我得到一个“对象引用未设置为对象的实例。”错误 这是我的密码:Sql server 2005 为SSIS脚本组件新输出列赋值,sql-server-2005,ssis,ssis-2005,Sql Server 2005,Ssis,Ssis 2005,我相信这是一个简单的问题,但我正在尝试将两列合并到一个新的输出列中,但没有任何运气。每次我得到一个“对象引用未设置为对象的实例。”错误 这是我的密码: Imports System Imports System.Data Imports System.Math Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper Imports Microsoft.SqlServer.Dts.Runtime.Wrapper Public Class ScriptMa
Imports System
Imports System.Data
Imports System.Math
Imports Microsoft.SqlServer.Dts.Pipeline.Wrapper
Imports Microsoft.SqlServer.Dts.Runtime.Wrapper
Public Class ScriptMain
Inherits UserComponent
Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
'
' Add your code here
'
Dim tmpStr As String
tmpStr = ""
If Not IsNumeric(Row.addrmap.ToString) Then
tmpStr = Row.addrmap.ToString.Substring(Row.addrmap.ToString.Length - 2, 1)
tmpStr = Row.addrmap.ToString.Remove(Row.addrmap.ToString.Length - 2, 1).PadLeft(3, CChar("0")) & " " & tmpStr.PadLeft(3, CChar("0")) & " " & Row.addrpar.ToString
Else
tmpStr = Row.addrmap.ToString.PadLeft(3, CChar("0")) & " " & "000 " & Row.addrpar.ToString
End If
Row.addrMapPar = tmpStr
End Sub
End Class
谢谢你的帮助 是否已将新的输出列添加到脚本组件任务的输入和输出属性窗格中?
是否已将新的输出列添加到脚本组件任务的输入和输出属性窗格中?
我解决了这个问题!这与数据中的空值有关。我没有提供数据,我只是分析了一下,发现有一些空值我不知道 为了解决这个问题,我使用了:
If Row.addrmap_IsNull = False and Row.addrpar_IsNull = False Then
...
End If
我解决了这个问题!这与数据中的空值有关。我没有提供数据,我只是分析了一下,发现有一些空值我不知道 为了解决这个问题,我使用了:
If Row.addrmap_IsNull = False and Row.addrpar_IsNull = False Then
...
End If
是的,addrMapPar字段仅设置为输出列,而addrmap和addrpar字段仅设置为输入列。您发布的内容看起来不错,是否有其他可能导致错误的代码?关于数据类型和输入/输出名称,它们都是正确的吗?唯一的其他代码(也会爆炸)是来自另一个表的数据,我正在用它做同样的事情。输入/输出名称和数据类型应正确。输出列不是输入列,这可能是一个问题吗?或者我是否缺少Output0\u ProcessOutputRow函数?您不需要输出函数,输出列也不需要是输入列。您是否尝试过删除并重新创建脚本组件任务?我想知道BufferWrapper和ComponentWrapper代码文件是否已被修改或损坏。另外,您是否能够通过使用断点或MessageBox语句调试脚本?我已经删除并重新创建了它,但是没有,我无法调试它,并且我也无法从MessageBox中获得任何信息。我将再次尝试删除并重新创建,并让您知道…是的,addrMapPar字段仅设置为输出列,而addrmap和addrpar字段仅设置为输入列。您发布的内容看起来不错,您是否有其他可能导致错误的代码?关于数据类型和输入/输出名称,它们都是正确的吗?唯一的其他代码(也会爆炸)是来自另一个表的数据,我正在用它做同样的事情。输入/输出名称和数据类型应正确。输出列不是输入列,这可能是一个问题吗?或者我是否缺少Output0\u ProcessOutputRow函数?您不需要输出函数,输出列也不需要是输入列。您是否尝试过删除并重新创建脚本组件任务?我想知道BufferWrapper和ComponentWrapper代码文件是否已被修改或损坏。另外,您是否能够通过使用断点或MessageBox语句调试脚本?我已经删除并重新创建了它,但是没有,我无法调试它,并且我也无法从MessageBox中获得任何信息。我将尝试删除并重新创建,然后让您知道。。。