2010-01-29 52 views
0

從腳本組件讀取系統變量的最佳方法是什麼?從腳本組件讀取系統變量

嘗試如下:做工精細,當爲用戶變量

base.PreExecute(); 
    IDTSVariables100 variables = null; 
    VariableDispenser.LockForRead("System::ContainerStartTime"); 
    VariableDispenser.GetVariables(out variables); 
    auditTimeStamp = Convert.ToDateTime(variables[1].Value); 
    System.Windows.Forms.MessageBox.Show(auditTimeStamp.ToString()); 
    variables.Unlock(); 

時試圖讀取系統變量拋出以下錯誤:

腳本組件遇到用戶代碼的異常: 項目名稱:SC_0bfc7da1c6fe4b83bc124b87eb4178e5 異常來自HRESULT:0xC0010009

at Microsoft.SqlServer.Dts.Runtime.Wrapper.IDTSVa​​riables100.get_Item(Object Index) at ScriptMain.PreExecute() at Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.PreExecute()

請任何線索。

感謝

回答

1

好的東西拿到這個工作作爲

 #region Class Variables 

     int jobId; 
     DateTime auditTimeStamp; 
     IDTSVariables100 variables; 
     const string tableName = "ORGANISATION_PROVIDER"; 

     #endregion 

     public override void PreExecute() 
     { 
      #region On PreExecute - Get the JOB ID passed - COMMON 
      base.PreExecute(); 
      variables= null; 
      VariableDispenser.LockForWrite("System::ContainerStartTime"); 
      VariableDispenser.GetVariables(out variables); 
      auditTimeStamp = Convert.ToDateTime(variables[0].Value); 
      variables.Unlock(); 

      #endregion 
     } 

這工作fine..not知道我已經錯了以前做。

0

您可以創建一個被評估爲引用系統變量表達式用戶變量。這樣

@[System :: PackageName]. 
2

更改了指數,從

Convert.ToDateTime(variables[1].Value); 

Convert.ToDateTime(variables[0].Value); 
相關問題