2011-03-14 1 views
0

J'ai un fichier plat dont la structure est commeun problème avec le code de composant de script SSIS, Sql Server 2008

Id Value 
1 1,2,3 
2 4,5 

Les besoins de sortie à en

ID Value 
1 1 
1 2 
1 3 
2 4 
2 5 

J'ai une source de fichier plat et d'un composant de script qui est en cours asynchrone. Et dans l'éditeur de script, je l'ai écrit le code ci-dessous

public override void Input0_ProcessInputRow(Input0Buffer Row) 
     { 
       MyOutputBuffer.AddRow(); 
       string[] arr = Row.Column1.Split(','); 
       foreach (string s in arr) 
       { 
       if (!string.IsNullOrEmpty(Row.Column0)) 
       { 
         MyOutputBuffer.ID = Row.Column0; 
         MyOutputBuffer.Values = s; 
         MyOutputBuffer.AddRow(); 
       } 
       }   
     } 
     public override void Input0_ProcessInput(Input0Buffer Buffer) 
     { 
      while (Buffer.NextRow()) 
      { 
       Input0_ProcessInputRow(Buffer); 
      } 

      if (Buffer.EndOfRowset()) 
      { 
       MyOutputBuffer.SetEndOfRowset(); 
      } 
     } 

mais je reçois la sortie ci-dessous

Id Value 
NULL NULL 
1 1 
1 2 
1 3 
NULL NULL 
2 4 
2 5 
NULL NULL 

Quel est le problème dans le programme.

S'il vous plaît aider

Répondre

1

Got the fix

public override void Input0_ProcessInputRow(Input0Buffer Row) 
    {  

     string[] arr = Row.Column1.Split(','); 
     foreach (string s in arr) 
     { 
      MyOutputBuffer.AddRow(); 
      if (!string.IsNullOrEmpty(Row.Column0)) 
      { 
       MyOutputBuffer.ID = Row.Column0; 
       MyOutputBuffer.Values = s; 

      } 
     } 
    } 
+1

Vous pouvez aller de l'avant et marquer ceci comme la réponse que les gens sachent qu'il est répondu sans avoir à ouvrir. :-) – DKnight

Questions connexes