AssignExpression Propiedad
SQL Server 2008 R2
Gets or sets an expression to increment or decrement the loop counter.
Ensamblado: Microsoft.SqlServer.ManagedDTS (en Microsoft.SqlServer.ManagedDTS.dll)
The following code example creates a ForLoop and sets the three expression properties. The ForLoop also contains two tasks with a precedence constraint.
using System; using System.Collections.Generic; using System.Text; using Microsoft.SqlServer.Dts.Runtime; using Microsoft.SqlServer.Dts.Tasks.SendMailTask; using Microsoft.SqlServer.Dts.Tasks.BulkInsertTask; namespace ForLoopAPI { class Program { static void Main(string[] args) { String varName = "MyVariable"; int INIT_COUNT = 2; int MAX_COUNT = 5; Package pkg = new Package(); Variable var = pkg.Variables.Add(varName, false, "", 0); Variable var2 = pkg.Variables.Add("Counter", false, "", 0); ForLoop forLoop = (ForLoop)pkg.Executables.Add("STOCK:ForLoop"); forLoop.InitExpression = "@"+varName+" = "+INIT_COUNT; forLoop.EvalExpression = "@"+varName+" < "+MAX_COUNT; forLoop.AssignExpression = "@" + varName + " = @" + varName + " + " + INIT_COUNT; // Show a different syntax for setting these values. //forLoop.InitExpression = "@Counter = 1"; //forLoop.AssignExpression = "@Counter = @Counter + 1"; //forLoop.EvalExpression = "@Counter <= 10"; // The ForLoop contains a Properties collection. // Show how to set some properties using that collection. forLoop.Properties["Name"].SetValue(forLoop, "ForLoop Container"); forLoop.Properties["Description"].SetValue(forLoop, "ForLoop Container"); // Review the PackagePath of the ForLoop container. Console.WriteLine("PackagePath: {0}", forLoop.GetPackagePath()); // Because the ForLoop is a container, it can contain tasks // that run at certain conditions. TaskHost thLoopMail = (TaskHost)forLoop.Executables.Add("STOCK:SendMailTask"); TaskHost thLoopInsert = (TaskHost)forLoop.Executables.Add("STOCK:BulkInsertTask"); Executables loopExecs = forLoop.Executables; Console.WriteLine("Number of Executables in ForLoop: {0}", loopExecs.Count); // Like other containers, precedence constraints can be set on the // contained tasks. PrecedenceConstraint pc = forLoop.PrecedenceConstraints.Add((Executable)thLoopMail, thLoopInsert); PrecedenceConstraints pcs = forLoop.PrecedenceConstraints; Console.WriteLine("Number of precedence constraints: {0}", pcs.Count); // Run the package. Because required properties on the tasks are not // set, current sample code will fail. DTSExecResult result = pkg.Execute(); } } }
Sample Output:
PackagePath: \Package\{8A18B94E-1176-429E-BB3D-6F3F1E0C9070}
Number of Executables in ForLoop: 2
Number of precedence constraints: 1