언어

Sequence.PrecedenceConstraints 속성

정의

컨테이너 수준 컨테이너와 작업을 순서화된 제어 흐름에 연결하는 우선순위 제약 조건을 설명하는 객체 모음 PrecedenceConstraint 을 반환합니다

public:
 property Microsoft::SqlServer::Dts::Runtime::PrecedenceConstraints ^ PrecedenceConstraints { Microsoft::SqlServer::Dts::Runtime::PrecedenceConstraints ^ get(); };
public Microsoft.SqlServer.Dts.Runtime.PrecedenceConstraints PrecedenceConstraints { get; }
member this.PrecedenceConstraints : Microsoft.SqlServer.Dts.Runtime.PrecedenceConstraints
Public ReadOnly Property PrecedenceConstraints As PrecedenceConstraints

속성 값

컬렉션입니다 PrecedenceConstraints .

구현

예제

다음 코드 예시는 객체를 Sequence 생성하고 세 개의 작업을 생성하며, 그 사이에 우선순위 제약을 배치합니다. 이 컬렉션을 PrecedenceConstraints 사용하여 각 제약 조건에 대한 정보를 출력하여 , 의 제약 Sequence조건을 반복 처리합니다.

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

namespace Sequence_API  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            Package package = new Package();  
            Sequence seq = (Sequence)package.Executables.Add("STOCK:SEQUENCE");  

            // Add a File System task.  
            Executable eFileTask1 = seq.Executables.Add("STOCK:FileSystemTask");  
            TaskHost thFileTask1 = eFileTask1 as TaskHost;  

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

            // Add a Bulk Insert task.  
            Executable eBulkInsert = seq.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 = seq.PrecedenceConstraints.Add(eFileTask1, eFileTask2);  

            // 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 = seq.PrecedenceConstraints.Add(eFileTask2, eBulkInsert);  
            // Obtain the precedence constraint collection, and display properties.  
            // Some properties are read/write and have not been set.  
            PrecedenceConstraints seqPCs = seq.PrecedenceConstraints;  
            int numPCs = seqPCs.Count;  
            Console.WriteLine("Number of precedence constraints in Sequence: {0}", numPCs);  
            Console.WriteLine("----------------------------------------");  

            foreach (PrecedenceConstraint pc in seqPCs)  
            {  
                Console.WriteLine("Constrained container  {0}", pc.ConstrainedExecutable);  
                Console.WriteLine("Description            {0}", pc.Description);  
                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("Name                   {0}", pc.Name);  
                Console.WriteLine("Precedence Executable  {0}", pc.PrecedenceExecutable);  
                Console.WriteLine("Value                  {0}", pc.Value);  
                Console.WriteLine("-----------------------------------");  
            }  
            Executables seqExecs = seq.Executables;  
            int numExecs = seqExecs.Count;  
            Console.WriteLine("Number of Executables in Sequence: {0}", numExecs);  
        }  
    }  
}  
Imports System  
Imports System.Collections.Generic  
Imports System.Text    
Imports Microsoft.SqlServer.Dts.Runtime  
Imports Microsoft.SqlServer.Dts.Tasks. FileSystemTask  

Namespace Sequence_API  
    Class Program  
        Shared  Sub Main(ByVal args() As String)  
            Dim package As Package =  New Package()   
            Dim seq As Sequence = CType(package.Executables.Add("STOCK:SEQUENCE"), Sequence)  

            ' Add a File System task.  
            Dim eFileTask1 As Executable =  seq.Executables.Add("STOCK:FileSystemTask")   
            Dim thFileTask1 As TaskHost =  eFileTask1 as TaskHost   

            ' Add a second File System task.  
            Dim eFileTask2 As Executable =  seq.Executables.Add("STOCK:FileSystemTask")   
            Dim thFileTask2 As TaskHost =  eFileTask2 as TaskHost   

            ' Add a Bulk Insert task.  
            Dim eBulkInsert As Executable =  seq.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 =  seq.PrecedenceConstraints.Add(eFileTask1,eFileTask2)   

            ' 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 =  seq.PrecedenceConstraints.Add(eFileTask2,eBulkInsert)   
            ' Obtain the precedence constraint collection, and display properties.  
            ' Some properties are read/write and have not been set.  
            Dim seqPCs As PrecedenceConstraints =  seq.PrecedenceConstraints   
            Dim numPCs As Integer =  seqPCs.Count   
            Console.WriteLine("Number of precedence constraints in Sequence: {0}", numPCs)  
            Console.WriteLine("----------------------------------------")  

            Dim pc As PrecedenceConstraint  
            For Each pc In seqPCs  
                Console.WriteLine("Constrained container  {0}", pc.ConstrainedExecutable)  
                Console.WriteLine("Description            {0}", pc.Description)  
                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("Name                   {0}", pc.Name)  
                Console.WriteLine("Precedence Executable  {0}", pc.PrecedenceExecutable)  
                Console.WriteLine("Value                  {0}", pc.Value)  
                Console.WriteLine("-----------------------------------")  
            Next  
            Dim seqExecs As Executables =  seq.Executables   
            Dim numExecs As Integer =  seqExecs.Count   
            Console.WriteLine("Number of Executables in Sequence: {0}", numExecs)  
        End Sub  
    End Class  
End Namespace  

샘플 출력:

시퀀스에서 우선순위 제약 조건의 수: 2

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

Restricted container Microsoft. SqlServer.Dts.Runtime.TaskHost

Description

평가 연산 제약 조건

진짜 평가 진실해

ID {A4F5C0E6-A9A6-470D-9646-7FEAFE3B45AD}

논리적이고 진실하다

이름 {A4F5C0E6-A9A6-470D-9646-7FEAFE3B45AD}

Precedence Executable Microsoft. SqlServer.Dts.Runtime.TaskHost

가치 성공

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

Restricted container Microsoft. SqlServer.Dts.Runtime.TaskHost

Description

평가 연산 제약 조건

진짜 평가 진실해

ID {665C52DE-232A-4593-ADF1-7C51949712B8}

논리적이고 진실하다

이름 {665C52DE-232A-4593-ADF1-7C51949712B8}

Precedence Executable Microsoft. SqlServer.Dts.Runtime.TaskHost

가치 성공

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

연속 실행 파일 수: 3

설명

우선순위 제약은 컨테이너와 작업을 순서화된 워크플로우로 연결합니다. 패키지를 제외한 모든 종류의 컨테이너와 작업 사이에 우선순위 제약을 구현할 수 있습니다. 자세한 내용은 Precedence Constraints을(를) 참조하세요.

적용 대상