次の方法で共有


DTSPrecedenceEvalOp 列挙体

優先順位制約が使用する評価演算を表します。

名前空間:  Microsoft.SqlServer.Dts.Runtime
アセンブリ:  Microsoft.SqlServer.ManagedDTS (Microsoft.SqlServer.ManagedDTS.dll)

構文

'宣言
Public Enumeration DTSPrecedenceEvalOp
'使用
Dim instance As DTSPrecedenceEvalOp
public enum DTSPrecedenceEvalOp
public enum class DTSPrecedenceEvalOp
type DTSPrecedenceEvalOp
public enum DTSPrecedenceEvalOp

メンバー

メンバー名 説明
Expression 制約付きコンテナまたは制約付きタスクを実行するかどうかを式の値で決定するように指定します。PrecedenceConstraintExpression プロパティを設定します。
Constraint 制約付きコンテナまたは制約付きタスクを実行するかどうかを実行結果が決定するように指定します。PrecedenceConstraintValue プロパティを DTSExecResult 列挙の目的の値に設定します。
ExpressionAndConstraint 実行する制約付きコンテナまたは制約付きタスクに対して、制約結果が発生し、式が評価するように指定します。PrecedenceConstraintValue プロパティおよび Expression プロパティの両方を設定し、その LogicalAnd プロパティを true に設定します。
ExpressionOrConstraint 実行する制約付きコンテナまたは制約付きタスクに対して、制約結果が発生するか、または式が評価するように指定します。PrecedenceConstraintValue プロパティおよび Expression プロパティの両方を設定し、その LogicalAnd プロパティを false に設定します。

説明

優先項目は、タスクまたはコンテナであり、これらの式または実行結果 (完了、成功、または失敗) によって、制約付き項目である次のタスクまたはコンテナが実行されるかどうかが決定されます。既定値は Constraint です。詳細については、「優先順位制約」および「タスクおよびコンテナーでの優先順位制約の設定」を参照してください。

使用例

次のコード例では、3 つのタスクを作成し、これらの間に優先順位制約を配置します。PrecedenceConstraints コレクションを使用してパッケージ内の制約に対して繰り返し処理を実行し、この列挙の値の 1 つを含む EvalOp プロパティなど各制約に関する情報を表示します。次に、この列挙を使用して EvalOp の値を変更します。

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);
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask
Imports Microsoft.SqlServer.Dts.Tasks.FileSystemTask
 
Namespace PrecedenceConst
    Class Program
        Shared  Sub Main(ByVal args() As String)
            Dim pkg As Package =  New Package() 
            ' Add a File System task.
            Dim eFileTask1 As Executable =  pkg.Executables.Add("STOCK:FileSystemTask") 
            Dim thFileTask1 As TaskHost =  eFileTask1 as TaskHost 
 
            ' Add a second File System task.
            Dim eFileTask2 As Executable =  pkg.Executables.Add("STOCK:FileSystemTask") 
            Dim thFileTask2 As TaskHost =  eFileTask2 as TaskHost 
 
            ' Add a Bulk Insert task.
            Dim eBulkInsert As Executable =  pkg.Executables.Add("STOCK:BulkInsertTask") 
            Dim thBulkInsert As TaskHost =  eBulkInsert as TaskHost 
 
            ' Add a precedence contraint between eFileTask1 and eFileTask2.
            ' Set the constraint to be that eFileTask2 cannot run 
            ' until eFileTask1 completes.
            Dim pcFileTasks As PrecedenceConstraint =  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.
            Dim pcFiletoBulk As PrecedenceConstraint =  pkg.PrecedenceConstraints.Add(eFileTask2,eBulkInsert) 
            pcFileTasks.Name = "constraint between File System and Bulk Insert Tasks"
 
            ' Obtain the precedence constraint collection.
            Dim pConsts As PrecedenceConstraints =  pkg.PrecedenceConstraints 
            Dim containsConstraint As Boolean =  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)
 
            Dim pc As PrecedenceConstraint
            For Each 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("-----------------------------------")
            Next
 
            ' Set the EvalOp of the first constraint using the DtsPrecedenceEvalOp enumerator.
            Dim firstPC As PrecedenceConstraint =  pConsts(0) 
            firstPC.EvalOp = DTSPrecedenceEvalOp.Expression
            Console.WriteLine("Evaluation operation after {0}", firstPC.EvalOp)
        End Sub
    End Class
End Namespace

サンプルの出力 :

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