Dela via


Sequence.Executables Property

Returns a collection of executable objects processed by the run-time engine during execution of this Sequence container. This property is read-only.

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

Syntax

'Declaration
Public ReadOnly Property Executables As Executables
    Get
'Usage
Dim instance As Sequence
Dim value As Executables

value = instance.Executables
public Executables Executables { get; }
public:
virtual property Executables^ Executables {
    Executables^ get () sealed;
}
abstract Executables : Executables
override Executables : Executables
final function get Executables () : Executables

Property Value

Type: Microsoft.SqlServer.Dts.Runtime.Executables
An Executables collection that contains Executable objects.

Implements

IDTSSequence.Executables

Examples

The following code example creates a Sequence object, and creates three tasks, placing precedence constraints between them. Using the Executables collection, it shows the number of executables contained by the Sequence container.

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

Sample Output:

Number of precedence constraints in Sequence: 2

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

Constrained container Microsoft.SqlServer.Dts.Runtime.TaskHost

Description

Evaluation operation Constraint

Evaluates true True

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

LogicalAnd True

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

Precedence Executable Microsoft.SqlServer.Dts.Runtime.TaskHost

Value Success

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

Constrained container Microsoft.SqlServer.Dts.Runtime.TaskHost

Description

Evaluation operation Constraint

Evaluates true True

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

LogicalAnd True

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

Precedence Executable Microsoft.SqlServer.Dts.Runtime.TaskHost

Value Success

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

Number of Executables in Sequence: 3