首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用c#以编程方式在ssis中创建表达式任务

使用c#以编程方式在ssis中创建表达式任务
EN

Stack Overflow用户
提问于 2014-06-04 07:37:19
回答 1查看 1.1K关注 0票数 0

有人知道如何在c#中创建表达式任务来生成SSIS表达式任务吗?

谢谢。

我知道PrecedenceConstraint的事。

请看我的代码:

代码语言:javascript
复制
 Executable exe1 = pkg.Executables.Add("STOCK:SQLTask");
 TaskHost TKHSQLHostMySQLTask = (TaskHost)exe1;
 TKHSQLHostMySQLTask.Name = "my sql";
 ExecuteSQLTask MySQLTask = (ExecuteSQLTask)TKHSQLHostMySQLTask.InnerObject;

 //creating Execute SQL Task       
 MySQLTask.Connection = "sourcecon";
 MySQLTask.SqlStatementSource = "select deptno from dbo.dept";
 MySQLTask.SqlStatementSourceType = SqlStatementSourceType.DirectInput;
 MySQLTask.BypassPrepare = false;      

 Executable exe2 = pkg.Executables.Add("STOCK:SQLTask");

 TaskHost TKHSQLHostMySQLTask1 = (TaskHost)exe2;
 ExecuteSQLTask MySQLTask1 = (ExecuteSQLTask)TKHSQLHostMySQLTask1.InnerObject;
 //creating Execute SQL Task       
 MySQLTask1.Connection = "sourcecon";
 MySQLTask1.SqlStatementSource = "select deptno from dbo.dept where deptname=?";
 MySQLTask1.SqlStatementSourceType = SqlStatementSourceType.DirectInput;
 MySQLTask1.BypassPrepare = false;

 // Add input parameter binding
 MySQLTask1.ParameterBindings.Add();
 IDTSParameterBinding parameterBinding = MySQLTask1.ParameterBindings.GetBinding(0);
 parameterBinding.DtsVariableName = "[User::Dname]";
 parameterBinding.ParameterDirection = ParameterDirections.Input;
 //parameterBinding.DataType = (int)OleDBDataTypes.VARCHAR;
 parameterBinding.ParameterName = "0";
 parameterBinding.ParameterSize = 255;

 PrecedenceConstraint pc = pkg.PrecedenceConstraints.Add((Executable)exe1, (Executable)exe2);
 pc.EvalOp = DTSPrecedenceEvalOp.ExpressionAndConstraint;
 pc.Expression ="[User::myVar]>0";
  //how to add Expression task ?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-04 11:01:46

2012年SSIS中没有发布用于绰号ExpressionTask。改用ExpressionTask可执行文件的CLSID。然后可以使用PrecedenceConstraint将其连接到其他类。参见下面的示例。

确保在项目中引用Microsoft.SqlServer.ExpressionTask程序集。

代码语言:javascript
复制
// Using the CLSID
Executable exExpressionTask = 
pkg.Executables.Add("Microsoft.SqlServer.Dts.Tasks.ExpressionTask.ExpressionTask, Microsoft.SqlServer.ExpressionTask, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91");
TaskHost thExpressionTask = exExpressionTask as TaskHost;
ExpressionTask expressionTask = thExpressionTask.InnerObject as ExpressionTask;

// Set the expression.
expressionTask.Expression = @"10>0";

// Get the expression.
string expression = expressionTask.Expression;

// Validate the expression.
string str = expressionTask.ValidateExpression(null);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24031630

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档