2014-02-26 70 views
0

我想使用命令行參數執行SSIS包。我們可以在執行C#項目時做到這一點。我想用這個論點。使用命令行參數執行ssis包

CmdLineArguments:盤中OPT OPTION_DAILY_INTRADAY_VOL12/02/2014

然後,我想用這些不同的vlues做一些操作。

我已經得到了我搜查線得到了我們必須給予類似下面

DTEXEC /文件Package.dtsx /設置\ Package.Variables [用戶:: UniversFileAddress]的.properties [超值] ; \「INTRADAY OPT OPTION_DAILY_INTRADAY_VOL12/02/2014 \」

這對執行沒有影響。我的意思是它不適合我。可能是我的觀念是錯誤的。

,而我想傳遞的參數如下

盤中OPT OPTION_DAILY_INTRADAY_VOL12/02/2014

並使用腳本任務這些論點。 我該怎麼做..?

+1

我不明白的人只給點向下或向上,而不是幫助別人或給出一些有用的答案。他們認爲他們是否優秀..? 我的意思是這個排隊有什麼問題..? 我試了很多,如果我不能得到答案,然後我張貼.. –

+0

找出您的命令行字符串所需的語法最簡單的方法是創建一個代理作業,調用包並填寫變量配置選項卡。現在編寫代理作業並查看@command參數。 –

+0

@DataMasseur感謝您的幫助。你能告訴我更多關於什麼是代理工作..? –

回答

0

實際上有很多方法,但我發現以下方式適合我的應用程序。

  1. 創建控制檯應用程序。
  2. 在該應用程序中調用ssis包。
  3. 你可以在控制檯應用程序

這裏設置varible值是代碼:使用Microsoft.SqlServer.Dts.Runtime

;

命名空間ConsoleApplication1 { 類節目 { 靜態無效的主要(字符串[]參數) { 串[] argsArray =新的字符串[] { 「」, 「」, 「」, 「」}; if(args == null) Console.WriteLine(「args is null」); 其他 { 如果(args.Length> 4) {

  } 
      else if (args.Length > 3) 
      { 
       for (int i=0;i<args.Length;i++) 
       { 
        argsArray[i] = args[i]; 
       } 

      } 

     } 

     string pkglocation="h:\\My Documents\\Visual Studio 2008\\Projects\\Try_Project_To_Convert_Fro_Asia_Euro_US\\Try_Project_To_Convert_Fro_Asia_Euro_US\\Package.dtsx"; 

     Application app= new Application(); 

     Package Pkg=app.LoadPackage(pkglocation ,null); 
     Pkg.Variables["User::fileName"].Value = argsArray[2] + argsArray[3].Substring(6, 4) + argsArray[3].Substring(3, 2) + argsArray[3].Substring(0, 2); 
     string test = (string)Pkg.Variables["User::fileName"].Value; 
     Microsoft.SqlServer.Dts.Runtime.DTSExecResult results = Pkg.Execute(); 


    if (results == Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure) 
    { 
     string err = ""; 
     foreach (Microsoft.SqlServer.Dts.Runtime.DtsError local_DtsError in Pkg.Errors) 
     { 
      string error = local_DtsError.Description.ToString(); 
      err = err + error; 
     } 
    } 
    if (results == Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success) 
    { 
     string message = "Package Executed Successfully...."; 
    } 

    } 
} 

請讓我知道,如果你有任何問題