Метод SMOEnumerator.MoveNext
Advances the enumerator to the next element of the collection.
Пространство имен: Microsoft.SqlServer.Dts.Runtime.Enumerators.SMO
Сборка: Microsoft.SqlServer.ForEachSMOEnumerator (в Microsoft.SqlServer.ForEachSMOEnumerator.dll)
Синтаксис
'Декларация
Public Function MoveNext As Boolean
'Применение
Dim instance As SMOEnumerator
Dim returnValue As Boolean
returnValue = instance.MoveNext()
public bool MoveNext()
public:
virtual bool MoveNext() sealed
abstract MoveNext : unit -> bool
override MoveNext : unit -> bool
public final function MoveNext() : boolean
Возвращаемое значение
Тип: System.Boolean
true if the enumerator was successfully advanced to the next element; false if the enumerator has passed the end of the collection.
Реализует
Примеры
The following code example creates a ForEachLoop, creates a SMO enumerator and hosts it in a ForEachEnumeratorHost, where it is then added as the ForEachEnumerator in the ForEachLoop. Returning a ForEachSMOEnumerator, a SMOEnumerator is created as a System.Collections.IEnumerator and iterated over using MoveNext and Current. After the collection has passed the end, the Reset is used to reset the iterator.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Runtime.Enumerators.SMO;
namespace SMOEnumerator
{
class Program
{
const string PACKAGEFILENAME = @"\SamplePackage.dtsx";
static void Main(string[] args)
{
// Create the SSIS application
Application application = new Application();
// Create the new package
Package package = new Package();
package.PackageType = DTSPackageType.DTSDesigner100;
package.Name = "SMOEnumerator Sample";
package.Description = "This is a sample for SMOEnumerator";
package.CreatorComputerName = @"MACHINENAME"; // System.Environment.MachineName;
package.CreatorName = @"USERNAME"; //System.Environment.UserName;
// Adds the ADO.NET connection manager to the package
Connections connections = package.Connections;
ConnectionManager connectionManager = connections.Add("ADO.NET:SQL");
Console.WriteLine("ConnectionManager creation name: {0}", connectionManager.CreationName);
connectionManager.Name = @"localhost.AdventureWorks";
connectionManager.ConnectionString = @"Data Source=localhost;"
+ "Initial Catalog=AdventureWorks;"
+ "Integrated Security=True;";
// Create ForEach SMO Loop task
Executables executables = package.Executables;
ForEachLoop forEachLoop = executables.Add("STOCK:FOREACHLOOP") as ForEachLoop;
forEachLoop.Name = "Foreach Loop Container";
forEachLoop.Description = "Foreach Loop Container";
ForEachEnumeratorInfo forEachEnumeratorInfo = application.ForEachEnumeratorInfos["Foreach SMO Enumerator"];
ForEachEnumeratorHost forEachEnumeratorHost = forEachEnumeratorInfo.CreateNew();
forEachLoop.ForEachEnumerator = forEachEnumeratorHost;
// Setup the SMO enumerator
ForEachSMOEnumerator forEachSMOEnumerator = forEachEnumeratorHost.InnerObject as ForEachSMOEnumerator;
forEachSMOEnumerator.EnumURN = @"RuntimeServer[@Connection='"
+ connectionManager.ID + @"']/Server[@Name='localhost']"
+ @"/Database[@Name='AdventureWorks']"
+ @"/SMOEnumObj[@Name='Tables']"
+ @"/SMOEnumType[@Name='ObjectsPP']";
System.Collections.IEnumerator smoEnumerator = (System.Collections.IEnumerator)forEachSMOEnumerator.GetEnumerator(
connections, null, null, null);
Console.WriteLine("The collection contains the following values:");
int i = 0;
while ((smoEnumerator.MoveNext()) && (smoEnumerator.Current != null))
Console.WriteLine("[{0}] {1}", i++, smoEnumerator.Current);
smoEnumerator.Reset();
// Validate the layout of the package
DTSExecResult status = package.Validate(package.Connections, null, null, null);
Console.WriteLine("Validation result: " + status);
// Save the package
String currentDirectory = Environment.CurrentDirectory;
application.SaveToXml(currentDirectory + PACKAGEFILENAME, package, null);
Console.WriteLine(@"Package saved to " + currentDirectory + PACKAGEFILENAME);
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Runtime.Enumerators.SMO
Namespace SMOEnumerator
Class Program
const String PACKAGEFILENAME = "\SamplePackage.dtsx"
Shared Sub Main(ByVal args() As String)
' Create the SSIS application
Dim application As Application = New Application()
' Create the new package
Dim package As Package = New Package()
package.PackageType = DTSPackageType.DTSDesigner100
package.Name = "SMOEnumerator Sample"
package.Description = "This is a sample for SMOEnumerator"
package.CreatorComputerName = "MACHINENAME" ' System.Environment.MachineName;
package.CreatorName = "USERNAME" 'System.Environment.UserName;
' Adds the ADO.NET connection manager to the package
Dim connections As Connections = package.Connections
Dim connectionManager As ConnectionManager = connections.Add("ADO.NET:SQL")
Console.WriteLine("ConnectionManager creation name: {0}", connectionManager.CreationName)
connectionManager.Name = "localhost.AdventureWorks"
connectionManager.ConnectionString = "Data Source=localhost;"
+ "Initial Catalog=AdventureWorks;"
Dim "Integrated Security=True;" As +
' Create ForEach SMO Loop task
Dim executables As Executables = package.Executables
Dim forEachLoop As ForEachLoop = executables.Add("STOCK:FOREACHLOOP") as ForEachLoop
forEachLoop.Name = "Foreach Loop Container"
forEachLoop.Description = "Foreach Loop Container"
Dim forEachEnumeratorInfo As ForEachEnumeratorInfo = application.ForEachEnumeratorInfos("Foreach SMO Enumerator")
Dim forEachEnumeratorHost As ForEachEnumeratorHost = forEachEnumeratorInfo.CreateNew()
forEachLoop.ForEachEnumerator = forEachEnumeratorHost
' Setup the SMO enumerator
Dim forEachSMOEnumerator As ForEachSMOEnumerator = forEachEnumeratorHost.InnerObject as ForEachSMOEnumerator
forEachSMOEnumerator.EnumURN = "RuntimeServer[@Connection='"
+ connectionManager.ID + "']/Server[@Name='localhost']"
+ "/Database[@Name='AdventureWorks']"
+ "/SMOEnumObj[@Name='Tables']"
Dim "/SMOEnumType[@Name='ObjectsPP']" As +
System.Collections.IEnumerator smoEnumerator = (System.Collections.IEnumerator)forEachSMOEnumerator.GetEnumerator(
connections, Nothing, Nothing, Nothing)
Console.WriteLine("The collection contains the following values:")
Dim i As Integer = 0
While (smoEnumerator.MoveNext()) &&(smoEnumerator.Current <> Nothing)
Console.WriteLine("[{0}] {1}",i = Console.WriteLine("[{0}] {1}",i + 1
End While
smoEnumerator.Reset()
' Validate the layout of the package
Dim status As DTSExecResult = package.Validate(package.Connections,Nothing,Nothing,Nothing)
Console.WriteLine("Validation result: " + status)
' Save the package
Dim currentDirectory As String = Environment.CurrentDirectory
application.SaveToXml(currentDirectory + PACKAGEFILENAME, package, Nothing)
Console.WriteLine("Package saved to " + currentDirectory + PACKAGEFILENAME)
End Sub
End Class
End Namespace
См. также
Справочник
Пространство имен Microsoft.SqlServer.Dts.Runtime.Enumerators.SMO