SSIS - Composant de Script, Split seule ligne à plusieurs lignes (Parent-Enfant): Variation de la

Merci d'avance pour votre aide. Je suis dans le besoin d'aide sur la rédaction de SSIS composant de script pour délimiter la ligne unique pour plusieurs lignes. Il y avait beaucoup de blog utile et après j'ai regardé ci-dessous:

http://beyondrelational.com/ask/public/questions/1324/ssis-script-component-split-single-row-to-multiple-rows-parent-child-variation.aspx

http://bi-polar23.blogspot.com/2008/06/splitting-delimited-column-in-ssis.html

Cependant, j'ai besoin d'un peu d'aide supplémentaire pour le codage pour terminer le projet. Fondamentalement, c'est ce que je veux faire.

Données d'entrée

 
ID Nom de l'Élément 
1 Apple01,02,Banana01,02,03 
2 Spoon1,2,Fork1,2,3,4 

Données de sortie

 
ParentID ChildID Nom De L'Élément 
1 1 Apple01 
1 2 Apple02 
1 3 Banana01 
1 4 Banana02 
1 5 Banana03 
2 1 Spoon1 
2 2 Spoon2 
2 3 Fork1 
2 4 Fork2 
2 5 Fork3 
2 6 Fork4 

Ci-dessous est ma tentative de code, mais n'hésitez pas à réviser son ensemble, si c'est illogic. SSIS Asynchrone de sortie est réglé.

Public Overrides Sub Input0_ProcessInputRow(ByVal Row As Input0Buffer)
    Dim posID As Integer, childID As Integer
    Dim delimiter As String = ","
    Dim txtHolder As String, suffixHolder As String
    Dim itemName As String = Row.ItemName
    Dim keyField As Integer = Row.ID

    If Not (String.IsNullOrEmpty(itemList)) Then

        Dim inputListArray() As String = _
        itemList.Split(New String() {delimiter}, _
        StringSplitOptions.RemoveEmptyEntries)

        For Each item As String In inputListArray
            Output0Buffer.AddRow()
            Output0Buffer.ParentID = keyField

            If item.Length >= 3 Then
                txtHolder = Trim(item)
                Output0Buffer.ItemName = txtHolder

                'when item length is less than 3, it's suffix
            Else
                suffixHolder = Trim(item)
                txtHolder = Left(txtHolder.ToString(), Len(txtHolder) _
                    - Len(suffixHolder)) & suffixHolder.ToString()
                Output0Buffer.ItemName = txtHolder
            End If
        Next
    End If
End Sub

Le code actuel génère la sortie suivante

ID Nom de l'Élément 
1 Apple01 
1 02 
1 Banana01 
1 02 
1 03 
2 Spoon1 
2 2 
2 Fork1 
2 2 
2 3 
2 4 

Alors, quelles erreurs avez-vous?
J'ai un problème logique avec le codage. Ce n'est pas l'analyse de la ligne comme je l'aurais voulu.
Veuillez mettre à jour le problème avec ce que le code actuel est de produire donné ci-dessus des entrées.
Le code actuel ne l'analyse par des virgules. Mais il a les questions suivantes. 1) Il n'est pas concaténer le préfixe et le suffixe.e.g. Je reçois Apple01,02 dans des lignes distinctes. Il est censé sortie Apple01, Apple02 dans des lignes séparées 2)Ne produisent pas de parent-enfant ID de numérotation.
Le projet de loi, je vous remercie pour les commentaires. Je suis nouveau sur le codage et ayant un problème de dépannage

OriginalL'auteur ElegantFellow | 2012-03-05