/// <summary> /// 创建 foreach容器 /// </summary> /// <param name="parent"></param> /// <param name="PreviousComponent"></param> /// <returns></returns> private EzForEachLoop CreateEzForEachLoop(EzContainer parent, EzExecutable PreviousComponent) { EzForEachLoop ForEachContainer = new EzForEachLoop(parent) { Name = "Replenish data by month" }; if (PreviousComponent != null) { ForEachContainer.AttachTo(PreviousComponent); } ForEachContainer.Initialize(ForEachEnumeratorType.ForEachADOEnumerator); //ForEachContainer.ForEachEnumerator = ForEachEnumeratorType.ForEachADOEnumerator; ForEachADOEnumerator ado_enum = (ForEachADOEnumerator)ForEachContainer.ForEachEnumerator.InnerObject; ado_enum.Type = ADOEnumerationType.EnumerateRowsInFirstTable; ado_enum.DataObjectVariable = "User::TimeList"; ForEachContainer.VariableMappings.Add(); ForEachContainer.VariableMappings[0].VariableName = "User::StartTime"; ForEachContainer.VariableMappings[0].ValueIndex = "0"; ForEachContainer.VariableMappings.Add(); ForEachContainer.VariableMappings[1].VariableName = "User::EndTime"; ForEachContainer.VariableMappings[1].ValueIndex = "1"; //ezContainer.VariableMappings //EzForEachLoop ezf = new EzForEachLoop(this); //ForEachContainer.Initialize(ForEachEnumeratorType.ForEachADOEnumerator); return(ForEachContainer); }
/// <summary> /// 创建 序列容器 /// </summary> /// <param name="parent"></param> /// <param name="PreviousComponent"></param> /// <returns></returns> private EzSequence CreateEzSequence(EzContainer parent, EzExecutable PreviousComponent) { EzSequence ezContainer = new EzSequence(parent); if (PreviousComponent != null) { ezContainer.AttachTo(PreviousComponent); } ezContainer.Name = "Data Flows"; return(ezContainer); }
/// <summary> /// 创建执行SQL任务 /// </summary> /// <param name="parent"></param> /// <param name="task"></param> /// <param name="PreviousComponent"></param> /// <returns></returns> private EzExecSqlTask createEzExecSqlTask(EzContainer parent, Task task, EzExecutable PreviousComponent) { EzExecSqlTask ezExecSqlTask = new EzExecSqlTask(parent); if (PreviousComponent != null) { ezExecSqlTask.AttachTo(PreviousComponent); } ezExecSqlTask.Name = task.TaskName; ezExecSqlTask.Connection = ezOleDbConnectionManagers[task.SourceConmgrId]; //EzOleDbConMgrSource; ezExecSqlTask.SqlStatementSourceType = Microsoft.SqlServer.Dts.Tasks.ExecuteSQLTask.SqlStatementSourceType.DirectInput; ezExecSqlTask.SqlStatementSource = task.SqlCommand; return(ezExecSqlTask); }
/// <summary> /// 创建 数据流任务 /// </summary> /// <param name="parent"></param> /// <param name="task"></param> /// <param name="PreviousComponent"></param> /// <returns></returns> private EzDataFlow createEzDataFlow(EzContainer parent, Task task, EzExecutable PreviousComponent, Variables Variables) { //Adding a data flow task EzDataFlow dataflow = new EzDataFlow(parent); if (PreviousComponent != null) { dataflow.AttachTo(PreviousComponent); } dataflow.Name = task.TaskName + "_" + task.TaskId; EzOleDbSource source = new EzOleDbSource(dataflow) { Name = task.TaskName, //source.SqlCommand =string.Format("exec [dbo].[{0}] ",task.SourceTableName); SqlCommand = task.SourceTableName, Connection = ezOleDbConnectionManagers[task.SourceConmgrId], //source.Table = task.SourceTableName; AccessMode = AccessMode.AM_SQLCOMMAND }; string start_guid = ""; string end_guid = ""; foreach (Variable x in Variables) { if (x.Namespace == "User") { if (x.Name == "StartTime" || x.Name == "EndTime") { if (x.Name == "StartTime") { start_guid = x.ID; if (end_guid != "") { break; } } else { end_guid = x.ID; if (start_guid != "") { break; } } } } } source.SetComponentProperty("ParameterMapping", "\"@StartTime:Input\"," + start_guid + ";\"@EndTime:Input\"," + end_guid + ";"); //Adding an OLE DB Destination EzOleDbDestination destination = new EzOleDbDestination(dataflow) { Name = task.TargetTableName, Connection = ezOleDbConnectionManagers[task.TargetConmgrId], AccessMode = AccessMode.AM_OPENROWSET_FASTLOAD, Table = task.TargetTableName }; //Linking source and destination destination.AttachTo(source); destination.LinkAllInputsToOutputs(); return(dataflow); }