SMODataFileEnumerator.Current Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Obtiene el objeto actual desde el enumerador.
public:
property System::Object ^ Current { System::Object ^ get(); };
public object Current { get; }
member this.Current : obj
Public ReadOnly Property Current As Object
Valor de propiedad
Un objeto que es el objeto actual en la colección.
Implementaciones
Ejemplos
En el ejemplo de código siguiente se crea un ForEachLoop, se crea un enumerador de SMO y se hospeda en , ForEachEnumeratorHostdonde luego se agrega como en ForEachEnumerator .ForEachLoop Devolver un ForEachSMOEnumerator, SMODataFileEnumerator se crea como System.Collections.IEnumerator
un objeto y se itera sobre el uso MoveNext de y Current. Una vez que el índice ha pasado el final de la colección, Reset se usa para restablecer el iterador.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Runtime.Enumerators.SMO;
namespace SmoDataFileEnumerator
{
class Program
{
const string PACKAGEFILENAME = @"\SmoDataFileEnumeratorPackage.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.DTSDesigner;
package.Name = "SMODataFileEnumerator Sample";
package.Description = "This is a sample for SMODataFileEnumerator";
// Use System.Environment.MachineName; in the following line of code.
package.CreatorComputerName = @"MACHINENAME";
// Use System.Environment.UserName; in the following line of code.
package.CreatorName = @"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";
Console.WriteLine("ForEachLoop creation name: {0}", forEachLoop.CreationName);
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='DataFiles']"
+ @"/SMOEnumType[@Name='Locations']";
System.Collections.IEnumerator smoDataFileEnumerator = forEachSMOEnumerator.GetEnumerator(
connections, null, null, null) as System.Collections.IEnumerator;
Console.WriteLine("The collection contains the following values:");
int i = 0;
while ((smoDataFileEnumerator.MoveNext()) && (smoDataFileEnumerator.Current != null))
Console.WriteLine("[{0}] {1}", i++, smoDataFileEnumerator.Current);
smoDataFileEnumerator.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 SmoDataFileEnumerator
Class Program
const String PACKAGEFILENAME = "\SmoDataFileEnumeratorPackage.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.DTSDesigner
package.Name = "SMODataFileEnumerator Sample"
package.Description = "This is a sample for SMODataFileEnumerator"
' Use System.Environment.MachineName; in the following line of code.
package.CreatorComputerName = "MACHINENAME"
' Use System.Environment.UserName; in the following line of code.
package.CreatorName = "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"
Console.WriteLine("ForEachLoop creation name: {0}", forEachLoop.CreationName)
ForEachEnumeratorInfo forEachEnumeratorInfo
Dim As =
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='DataFiles']"
Dim "/SMOEnumType[@Name='Locations']" As +
System.Collections.IEnumerator smoDataFileEnumerator = forEachSMOEnumerator.GetEnumerator(
connections, Nothing, Nothing, Nothing) as System.Collections.IEnumerator
Console.WriteLine("The collection contains the following values:")
Dim i As Integer = 0
While (smoDataFileEnumerator.MoveNext()) &&(smoDataFileEnumerator.Current <> Nothing)
Console.WriteLine("[{0}] {1}",i = Console.WriteLine("[{0}] {1}",i + 1
End While
smoDataFileEnumerator.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