2011-03-07 7 views
1

Je suis sûr que c'est un problème simple, mais j'essaie de combiner 2 colonnes dans une nouvelle colonne de sortie, mais je n'ai pas eu de chance avec cela. Chaque fois que je reçois une 'Référence d'objet non définie sur une instance d'un objet.' erreurAttribuer une valeur à SSIS Script Composant new Colonne de sortie

Voici mon code:

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 

Merci pour l'aide!

Répondre

4

J'ai trouvé le problème! Cela avait à voir avec NULLS dans les données. Je n'ai pas fourni les données, je ne faisais que l'analyser et j'ai trouvé qu'il y avait des valeurs NULL que je ne connaissais pas.

Pour résoudre ce problème, je:

If Row.addrmap_IsNull = False and Row.addrpar_IsNull = False Then 
... 
End If 
+1

Bonne trouvaille, merci de poster la réponse. – grapefruitmoon

3

Avez-vous ajouté la nouvelle colonne de sortie au volet des propriétés Entrées et sorties de la tâche de composant de script? enter image description here

+0

Oui, le champ addrMapPar est mis en place seulement comme une colonne de sortie avec les champs addrmap et addrpar sous forme de colonnes d'entrée seulement. – JFV

+0

Ce que vous avez posté semble bien, avez-vous un autre code qui pourrait causer l'erreur? Qu'en est-il des types de données et des noms d'entrée/sortie, sont-ils tous corrects? – grapefruitmoon

+0

Le seul autre code (qui bombarde aussi) est celui d'une autre table avec laquelle je fais la même chose. Les noms d'entrée/sortie et les types de données doivent être corrects. Se pourrait-il que la colonne de sortie ne soit pas aussi une colonne d'entrée? Ou existe-t-il une fonction Output0_ProcessOutputRow qui me manque? – JFV

Questions connexes