2013-07-25 29 views
0

我是新來的ssis腳本,我有一些問題。在ProcessInputRow我彈出一條消息,確認我的key等於Row.KeyValue +1,但是當我使用CreateNewOutputRows中的消息時,它回到0.我不明白爲什麼在不同的函數中,密鑰變回0。我究竟做錯了什麼? (這是一個腳本組件)變量回到零在SSIS

int count = 0; 
int key; 
public override void Input0_ProcessInputRow(Input0Buffer Row) 
{ 
    count = count + 1; 
    if (Variables.KeyValueRowCount == count) 
    { 
     key = Row.KeyValue + 1; 
    } 
} 
public override void CreateNewOutputRows() 
{ 
    base.CreateNewOutputRows(); 
    NewKeyBuffer.AddRow(); 
    NewKeyBuffer.NewKey = key; 
} 
+0

你能幫助我理解你的腳本的意圖。我看到它是一個異步腳本,但想確保我理解爲什麼 – billinkc

回答

0

不知道是什麼原因,但解決方法之一可能在SSIS可以定義一個包變量,並通過Dts.Variables["key"].Value訪問它。

記得把它作爲讀/寫變量Script Task

+0

嗯,我將密鑰分配給PostExecute中的一個鍵變量,但我認爲您不能在ProcessInputRow中分配一個變量;我上次嘗試時發生錯誤。 – Bobcat88

+0

你絕對可以在腳本中的任何點爲變量(和行輸入列,如果它們被設置爲組件中的輸入列)賦值,因爲它們暴露給命名空間。 –