Aracılığıyla paylaş


PrecedenceConstraintEnumerator.Current Özelliği

Geçerli alır PrecedenceConstraint öğesinde koleksiyon.

Ad Alanı:  Microsoft.SqlServer.Dts.Runtime
Derleme:  Microsoft.SqlServer.ManagedDTS (Microsoft.SqlServer.ManagedDTS içinde.dll)

Sözdizimi

'Bildirim
Public ReadOnly Property Current As PrecedenceConstraint
    Get
'Kullanım
Dim instance As PrecedenceConstraintEnumerator
Dim value As PrecedenceConstraint

value = instance.Current
public PrecedenceConstraint Current { get; }
public:
property PrecedenceConstraint^ Current {
    PrecedenceConstraint^ get ();
}
member Current : PrecedenceConstraint
function get Current () : PrecedenceConstraint

Açıklamalar

Bir Numaralandırıcı oluşturulduktan sonra veya çağrısı yapıldıktan sonra Reset yöntem, MoveNext yönteminin çağrıldığı, numaralayıcı ilk öğe için ilerlemek için koleksiyon numaralayıcı değeri okuyabilmek için öncelikle Current özellik; Aksi takdirde, Current tanımsız ve atar bir özel durum.

CurrentSon çağrısı, aynı zamanda bir istisna atar MoveNext döndürülen yanlış, sonuna kadar gösterir koleksiyon.

CurrentNumaralayıcı ve art arda çağrılar konumunu taşımak Current dönmek kadar ya da ayný nesneye MoveNext veya sıfırlama denir.

Bir Numaralandırıcı geçerli kalır sürece koleksiyon değişmeden kalır.Koleksiyon, ekleme, değiştirme veya öğeleri silme gibi değişiklikler yapılırsa numaralayıcı geçersiz kılınır ve Düzeltilemeyen olur; Böylece, sonraki çağrı MoveNext veya Reset atar bir InvalidOperationException.Koleksiyon çağrıları arasında değiştirilirse MoveNext ve Current, Current Bu öğeyi döndürür küme kadar numaralayıcı getirildi bile.

Örnekler

Aşağıdaki kod örneği, iki öncelik kısıtlamaları oluşturur.Daha sonra kullanır Contains belirli bir kısıtlama varlığını doğrulamak için kısıtlamalar önce ve sonra kullanımını sayar Remove yöntem ve nasıl kullanılacağını gösterir GetEnumerator üzerinden yinelemek yapmak için koleksiyon, kullanma Item sözdizimi pConsts[i].ID dönmek için ID kısıtlama.

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

Örnek Çıktı:

Kısıtlama Ekle toplu görev dosya sistemi arasındaki içerir?True

ID: BA42AF32-3AC1-4CB6-85A2-289760ADBFA4

ID: BA42AF32-3AC1-4CB6-85A2-289760ADBFA4

2 Kısıtlamaları sayısı

1 Kısıtlamaları sayısı