2015-11-10 18 views
0

我在SQL2012中有一個源腳本組件。 我相信如果你想在Scriptcomponent中設置一個讀/寫變量,它必須在Postexecute方法中設置。我這樣做是這樣的;PostExecute在SSIS腳本組件中未觸發

public override void PostExecute() 
{ 
    base.PostExecute(); 
    Variables.value1 = "some value"; 
} 

腳本組件運​​行後,我測試了變量,發現它沒有被設置。我在PostExecute方法中設置了一個斷點並確認它永遠不會被調用。

我甚至寫了一個非常簡單的新軟件包,並再次測試它,結果相同。誰能告訴我爲什麼PostExecute不會觸發。

我不知道在此處輸入變量時有任何限制(無論是否有要處理的記錄)。

回答

0

變量可以在腳本組件中設置,但只能在數據流任務完成後(在下一個任務中)使用它。

+0

這是如何防止事件發生? – user1413844

0

經過一番測試,看起來當你使用腳本組件作爲「源代碼」時,PostExecture事件從不會觸發。適用於「轉型」。沒有測試出「目標」類型。微軟文檔中沒有提到這個事實,所以它的誤導性。

我結束了使用rowcount控件來計數記錄。不知道如果我需要更多關於PostExecture事件,我會做什麼。