Export (0) Print
Expand All
Expand Minimize

DTSPrecedenceEvalOp Enumeration

Indicates the evaluation operations that the precedence constraint uses.

Namespace:  Microsoft.SqlServer.Dts.Runtime
Assembly:  Microsoft.SqlServer.ManagedDTS (in Microsoft.SqlServer.ManagedDTS.dll)

public enum DTSPrecedenceEvalOp

Member nameDescription
ConstraintSpecifies that the execution outcome determines whether the constrained container or task runs. Set the Value property of the PrecedenceConstraint to the desired value from the DTSExecResult enumeration.
ExpressionSpecifies that the value of an expression determines whether the constrained container or task runs. Set the Expression property of the PrecedenceConstraint.
ExpressionAndConstraintSpecifies that the constraint outcome must occur and the expression must evaluate for the constrained container or task to run. Set both the Value and the Expression properties of the PrecedenceConstraint, and set its LogicalAnd property to true.
ExpressionOrConstraintSpecifies that either the constraint outcome must occur, or the expression must evaluate, for the constrained container or task to run. Set both the Value and the Expression properties of the PrecedenceConstraint, and set its LogicalAnd property to false.

The precedence item is the task or container whose expression or execution outcome (completion, success, or failure) determines whether the next task or container, the constrained item, runs. The default value is Constraint. For more information, see Precedence Constraints.

The following code example creates three tasks, and places precedence constraints between them. Using the PrecedenceConstraints collection, it iterates over the constraints in the package, displaying information about each constraint, including the EvalOp property, which contains one of the values from this enumeration. The code example then changes the value of EvalOp using this enumeration.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Tasks.BulkInsertTask;
using Microsoft.SqlServer.Dts.Tasks.FileSystemTask;

namespace PrecedenceConst
{
    class Program
    {
        static void Main(string[] args)
        {
            Package pkg = new Package();
            // Add a File System task.
            Executable eFileTask1 = pkg.Executables.Add("STOCK:FileSystemTask");
            TaskHost thFileTask1 = eFileTask1 as TaskHost;

            // Add a second File System task.
            Executable eFileTask2 = pkg.Executables.Add("STOCK:FileSystemTask");
            TaskHost thFileTask2 = eFileTask2 as TaskHost;

            // Add a Bulk Insert task.
            Executable eBulkInsert = pkg.Executables.Add("STOCK:BulkInsertTask");
            TaskHost thBulkInsert = eBulkInsert as TaskHost;

            // Add a precedence contraint between eFileTask1 and eFileTask2.
            // Set the constraint to be that eFileTask2 cannot run 
            // until eFileTask1 completes.
            PrecedenceConstraint pcFileTasks = pkg.PrecedenceConstraints.Add(eFileTask1, eFileTask2);
            pcFileTasks.Name = "constraint between File System Tasks";

            // Add another precedence contraint. Add it between eFileTask2 and BulkInsert.
            // Again, set the constraint to be that BulkInsert cannot run 
            // until eFileTask2 completes.
            PrecedenceConstraint pcFiletoBulk = pkg.PrecedenceConstraints.Add(eFileTask2, eBulkInsert);
            pcFileTasks.Name = "constraint between File System and Bulk Insert Tasks";

            // Obtain the precedence constraint collection.
            PrecedenceConstraints pConsts = pkg.PrecedenceConstraints;
            Boolean containsConstraint = pkg.PrecedenceConstraints.Contains("constraint between File System and Bulk Insert Tasks");
            Console.WriteLine("Contains the constraint between File System and Bulk Insert Tasks? {0}", containsConstraint);

            foreach (PrecedenceConstraint pc in pConsts)
            {
                Console.WriteLine("Constrained container  {0}", pc.ConstrainedExecutable);
                Console.WriteLine("Evaluation operation   {0}", pc.EvalOp);
                Console.WriteLine("Evaluates true         {0}", pc.EvaluatesTrue);
                Console.WriteLine("ID                     {0}", pc.ID);
                Console.WriteLine("LogicalAnd             {0}", pc.LogicalAnd);
                Console.WriteLine("Precedence Executable  {0}", pc.PrecedenceExecutable);
                Console.WriteLine("-----------------------------------");
            }

            // Set the EvalOp of the first constraint using the DtsPrecedenceEvalOp enumerator.
            PrecedenceConstraint firstPC = pConsts[0];
            firstPC.EvalOp = DTSPrecedenceEvalOp.Expression;
            Console.WriteLine("Evaluation operation after {0}", firstPC.EvalOp);
        }
    }
}

Sample Output:

Contains the constraint between File System and Bulk Insert Tasks? True

Constrained container Microsoft.SqlServer.Dts.Runtime.TaskHost

Evaluation operation Constraint

Evaluates true True

ID {0EDDD5B8-7135-4A73-B240-EDF54C0E66AC}

LogicalAnd True

Precedence Executable Microsoft.SqlServer.Dts.Runtime.TaskHost

-----------------------------------

Constrained container Microsoft.SqlServer.Dts.Runtime.TaskHost

Evaluation operation Constraint

Evaluates true True

ID {80584B94-A3D0-4E08-B9C1-8CCC7BD7D086}

LogicalAnd True

Precedence Executable Microsoft.SqlServer.Dts.Runtime.TaskHost

-----------------------------------

Evaluation operation after Expression

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback

Community Additions

ADD
Show:
© 2014 Microsoft