Udostępnij za pośrednictwem


Metoda PrecedenceConstraints.GetEnumerator

Zwraca moduł wyliczający do użytku w Iterowanie nad PrecedenceConstraints kolekcja.

Przestrzeń nazw:  Microsoft.SqlServer.Dts.Runtime
Zestaw:  Microsoft.SqlServer.ManagedDTS (w Microsoft.SqlServer.ManagedDTS.dll)

Składnia

'Deklaracja
Public Function GetEnumerator As PrecedenceConstraintEnumerator
'Użycie
Dim instance As PrecedenceConstraints
Dim returnValue As PrecedenceConstraintEnumerator

returnValue = instance.GetEnumerator()
public PrecedenceConstraintEnumerator GetEnumerator()
public:
PrecedenceConstraintEnumerator^ GetEnumerator()
member GetEnumerator : unit -> PrecedenceConstraintEnumerator 
public function GetEnumerator() : PrecedenceConstraintEnumerator

Uwagi

Jeśli wywołanie Contains Metoda zwraca true, określonego elementu kolekcja można uzyskać dostęp za pomocą składni PrecedenceConstraints[index].Jednakże jeśli Contains Metoda zwraca false, ta właściwość zgłasza wyjątek.W języku C#, ta właściwość jest indeksowanie dla PrecedenceConstraints klasy

Przykłady

Następujący przykładowy kod tworzy dwa ograniczenia pierwszeństwo.Następnie Contains sprawdzał, czy szczególne ograniczenia zlicza ograniczenia przed i po zastosowaniu środka Remove metoda i przedstawiono sposób użycia GetEnumerator do iterować nad zbierania, przy użyciu Item Składnia pConsts[i].ID zwraca ID ograniczenie.

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

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 constraint 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 constraint. 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);
            
            // Create the enumerator.
            PrecedenceConstraintEnumerator myEnumerator = pConsts.GetEnumerator();
            // Iterate over the collection, and remove the Bulk Insert task.
            int i = 0;
            while ((myEnumerator.MoveNext()) && (myEnumerator.Current != null))
            {
                Console.WriteLine("ID {0}", pConsts[i].ID);
            }

            Console.WriteLine("Number of constraints {0}", pConsts.Count);
            // Remove the second contstraint.
            pConsts.Remove(1);
            // Verify that one has been removed.
            Console.WriteLine("Number of constraints {0}", pConsts.Count);

            Console.WriteLine();
        }
    }
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.FileSystemTask
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask
 
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 constraint 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 constraint. 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)
 
            ' Create the enumerator.
            Dim myEnumerator As PrecedenceConstraintEnumerator =  pConsts.GetEnumerator() 
            ' Iterate over the collection, and remove the Bulk Insert task.
            Dim i As Integer =  0 
            While (myEnumerator.MoveNext()) &&(myEnumerator.Current <> Nothing)
                Console.WriteLine("ID {0}", pConsts(i).ID)
            End While
 
            Console.WriteLine("Number of constraints {0}", pConsts.Count)
            ' Remove the second contstraint.
            pConsts.Remove(1)
            ' Verify that one has been removed.
            Console.WriteLine("Number of constraints {0}", pConsts.Count)
 
            Console.WriteLine()
        End Sub
    End Class
End Namespace

Przykładowe dane wyjściowe:

Zawiera ograniczenia między systemem plików i luzem Wstaw zadania?Prawda

IDENTYFIKATOR {BA42AF32-3AC1-4CB6-85A2-289760ADBFA4}

IDENTYFIKATOR {BA42AF32-3AC1-4CB6-85A2-289760ADBFA4}

Liczby ograniczeń 2

Liczby ograniczeń 1