2011-01-27 75 views
4

用C#組​​件掙扎。我想要做的是在我的輸入源中使用管道分隔的ntext列,然後將數組寫入文本文件。當我運行我的分量我的輸出是這樣的:SSIS腳本組件:Microsoft.SqlServer.Dts.Pipeline.BlobColumn

DealerID,StockNumber,Option 
161552,P1427,Microsoft.SqlServer.Dts.Pipeline.BlobColumn 

香港專業教育學院一直與GetBlobData方法和IM與它掙扎。任何幫助非常感謝!以下是完整的腳本:

public override void Input0_ProcessInputRow(Input0Buffer Row) 
{ 
    string vehicleoptionsdelimited = Row.Options.ToString(); 
    //string OptionBlob = Row.Options.GetBlobData(int ; 
    //string vehicleoptionsdelimited = System.Text.Encoding.GetEncoding(Row.Options.ColumnInfo.CodePage).GetChars(OptionBlob); 
    string[] option = vehicleoptionsdelimited.Split('|'); 
    string path = @"C:\Users\User\Desktop\Local_DS_CSVs\"; 

    string[] headerline = 
    { 
     "DealerID" + "," + "StockNumber" + "," + "Option" 
    }; 

    System.IO.File.WriteAllLines(path + "OptionInput.txt", headerline); 

    using (System.IO.StreamWriter file = new System.IO.StreamWriter(path + "OptionInput.txt", true)) 
    { 
     foreach (string s in option) 
     { 
      file.WriteLine(Row.DealerID.ToString() + "," + Row.StockNumber.ToString() + "," + s); 
     } 
    } 
+0

另外我想補充一點,我在C#中的控制檯應用程序中使用常量代替我的SSIS變量編寫了這個相同的類,並且它工作得很好。它只是窒息在那個斑點上。正如您在我的評論代碼中看到的,我正在嘗試,但我無法從blob轉換爲字符串以正常工作。 – Zach 2011-01-27 22:56:27

回答

1

另外一個很容易解決這個問題,因爲它是一個總PITA,是將錯誤輸出路由到一個de riged列組件,並將您的blob數據轉換爲STR或WSTR作爲新列。

將其輸出路由到您的腳本組件,並且數據將作爲流水線上的附加列來進行分析。

這可能只適用於您的數據少於8000個字符長的情況。