2014-02-26 44 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...."; 
    } 

    } 
} 

请让我知道,如果你有任何问题