我想使用命令行参数执行SSIS包。 正如我们在执行C#项目时所做的那样。我想用这个论点。
CmdLineArguments:INTRADAY OPT OPTION_DAILY_INTRADAY_VOL12 / 02/2014
然后我想用这些不同的线索来做一些操作。
我得到了什么:我在网上搜索并得到了我们必须提供的内容如下
dtexec / file Package.dtsx / Set \ Package.Variables [User :: UniversFileAddress] .Properties [Value]; \“INTRADAY OPT OPTION_DAILY_INTRADAY_VOL12 / 02/2014 \”
对执行没有影响。我的意思是它不适合我。可能是我的观念错了。
而我想传递如下的参数
INTRADAY OPT OPTION_DAILY_INTRADAY_VOL12 / 02/2014
在脚本任务中使用这些参数。 我怎么能这样做..?
答案 0 :(得分:0)
实际上有很多方法,但我发现以下方式适合我的应用程序。
这是代码:
使用Microsoft.SqlServer.Dts.Runtime;
命名空间ConsoleApplication1 { 课程 { static void Main(string [] args) { string [] argsArray = new string [] {“”,“”,“”,“”}; if(args == null) Console.WriteLine(“args为null”); 其他 { if(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....";
}
}
}
如果您有任何问题,请告诉我