Share via


ForEachLoop.ForEachEnumerator Property

Gets or sets a host for the ForEachEnumerator.

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

Syntax

'Declaration
Public Property ForEachEnumerator As ForEachEnumeratorHost 
    Get 
    Set
'Usage
Dim instance As ForEachLoop 
Dim value As ForEachEnumeratorHost 

value = instance.ForEachEnumerator

instance.ForEachEnumerator = value
public ForEachEnumeratorHost ForEachEnumerator { get; set; }
public:
property ForEachEnumeratorHost^ ForEachEnumerator {
    ForEachEnumeratorHost^ get ();
    void set (ForEachEnumeratorHost^ value);
}
member ForEachEnumerator : ForEachEnumeratorHost with get, set
function get ForEachEnumerator () : ForEachEnumeratorHost 
function set ForEachEnumerator (value : ForEachEnumeratorHost)

Property Value

Type: Microsoft.SqlServer.Dts.Runtime.ForEachEnumeratorHost
Returns a ForEachEnumeratorHost.

Examples

The following code example creates a ForEachLoop and a ForEachEnumerator from the host.

            // Create the new application and package.
            Application app = new Application();
            Package package = new Package();

            // Create ForEachLoop task
            Executables executables = package.Executables;
            ForEachLoop forEachLoop = executables.Add("STOCK:FOREACHLOOP") as ForEachLoop;
 
            // Create a VariableMappings and VariableMapping objects.
            ForEachVariableMappings forEachVariableMappings = forEachLoop.VariableMappings;
            ForEachVariableMapping forEachVariableMapping = forEachVariableMappings.Add();

            // Create a mapping between the variable and its value.
            forEachVariableMapping.VariableName = @"Id";
            forEachVariableMapping.ValueIndex = 0;

            // Create a ForEachEnumeratorInfo from the application.
            // Create a Host for the ForEachItem enumerator.
            // Set the CollectionEnumerator to true to indicate that 
            // the iteration is over a collection.
            ForEachEnumeratorInfo forEachEnumeratorInfo = app.ForEachEnumeratorInfos["Foreach Item Enumerator"];
            ForEachEnumeratorHost forEachEnumeratorHost = forEachEnumeratorInfo.CreateNew();
            forEachEnumeratorHost.CollectionEnumerator = true;

            // Create the appropriate type of ForEachEnumerator from the host.
            forEachLoop.ForEachEnumerator = forEachEnumeratorHost;

            // Setup the Collection enumerator.
            ForEachItemEnumerator forEachItemEnumerator = forEachEnumeratorHost.InnerObject as ForEachItemEnumerator;

            ForEachItem forEachItem = forEachItemEnumerator.Items.Add();
            ForEachItemValue forEachItemValue = forEachItem.Add();
            forEachItemValue.Value = 1;
            forEachItemValue = forEachItem.Add();
            forEachItemValue.Value = "A";

            // Add other tasks to ForEachLoop container
            // and set appropriate values.

            // Run the package.
            DTSExecResult status = package.Execute();
            ' Create the new application and package.
            Dim app As Application =  New Application() 
            Dim package As Package =  New Package() 
 
            ' Create ForEachLoop task
            Dim executables As Executables =  package.Executables 
            Dim forEachLoop As ForEachLoop =  executables.Add("STOCK:FOREACHLOOP") as ForEachLoop 
 
            ' Create a VariableMappings and VariableMapping objects.
            Dim forEachVariableMappings As ForEachVariableMappings =  forEachLoop.VariableMappings 
            Dim forEachVariableMapping As ForEachVariableMapping =  forEachVariableMappings.Add() 
 
            ' Create a mapping between the variable and its value.
            forEachVariableMapping.VariableName = "Id"
            forEachVariableMapping.ValueIndex = 0
 
            ' Create a ForEachEnumeratorInfo from the application.
            ' Create a Host for the ForEachItem enumerator.
            ' Set the CollectionEnumerator to true to indicate that 
            ' the iteration is over a collection.
            Dim forEachEnumeratorInfo As ForEachEnumeratorInfo =  app.ForEachEnumeratorInfos("Foreach Item Enumerator") 
            Dim forEachEnumeratorHost As ForEachEnumeratorHost =  forEachEnumeratorInfo.CreateNew() 
            forEachEnumeratorHost.CollectionEnumerator = True
 
            ' Create the appropriate type of ForEachEnumerator from the host.
            forEachLoop.ForEachEnumerator = forEachEnumeratorHost
 
            ' Setup the Collection enumerator.
            Dim forEachItemEnumerator As ForEachItemEnumerator =  forEachEnumeratorHost.InnerObject as ForEachItemEnumerator 
 
            Dim forEachItem As ForEachItem =  forEachItemEnumerator.Items.Add() 
            Dim forEachItemValue As ForEachItemValue =  forEachItem.Add() 
            forEachItemValue.Value = 1
            forEachItemValue = forEachItem.Add()
            forEachItemValue.Value = "A"
 
            ' Add other tasks to ForEachLoop container
            ' and set appropriate values.
 
            ' Run the package.
            Dim status As DTSExecResult =  package.Execute()

See Also

Reference

ForEachLoop Class

Microsoft.SqlServer.Dts.Runtime Namespace