SMODataFileEnumerator.Current Eigenschaft
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft das aktuelle Objekt aus dem Enumerator ab.
public:
property System::Object ^ Current { System::Object ^ get(); };
public object Current { get; }
member this.Current : obj
Public ReadOnly Property Current As Object
Eigenschaftswert
Ein Objekt, das das aktuelle Objekt in der Auflistung ist.
Implementiert
Beispiele
Im folgenden Codebeispiel wird ein ForEachLoopSMO-Aufzählungsator erstellt und in einem ForEachEnumeratorHostHosten gehostet, in dem es dann als "in" ForEachEnumeratorForEachLoophinzugefügt wird. Zurückgeben eines , eine ForEachSMOEnumeratorSMODataFileEnumerator wird als eine System.Collections.IEnumerator
und iterierte Über- und CurrentÜberlastung MoveNext erstellt. Nachdem der Index das Ende der Auflistung übergeben hat, wird dies Reset verwendet, um den Iterator zurückzusetzen.
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