DtsEventHandlerEnumerator.Current Свойство
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Возвращает текущий элемент коллекции.
public:
property Microsoft::SqlServer::Dts::Runtime::DtsEventHandler ^ Current { Microsoft::SqlServer::Dts::Runtime::DtsEventHandler ^ get(); };
public Microsoft.SqlServer.Dts.Runtime.DtsEventHandler Current { get; }
member this.Current : Microsoft.SqlServer.Dts.Runtime.DtsEventHandler
Public ReadOnly Property Current As DtsEventHandler
Значение свойства
Текущий элемент коллекции.
Примеры
Следующий пример кода создаёт два обработчика событий для пакета. Для одного обработчика событий добавляются две задачи. Затем создаётся a DtsEventHandlerEnumerator и использует Current методы MoveNext and для навигации по коллекции.
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SqlServer.Dts.Runtime;
using Microsoft.SqlServer.Dts.Tasks.SendMailTask;
using Microsoft.SqlServer.Dts.Tasks.BulkInsertTask;
namespace DtsEventHandler_API
{
class Program
{
static void Main(string[] args)
{
Package pkg = new Package();
// Set up a DtsEventHandler for the OnError event of the package.
DtsEventHandler dtsEHOE = (DtsEventHandler)pkg.EventHandlers.Add("OnError");
DtsEventHandler dtsEHW = (DtsEventHandler)pkg.EventHandlers.Add("OnWarning");
// When an OnError Event occurs, the Executables collection contains
// the items to run. For this example, there will be a SendMailtTask
// and a BulkInsertTask with a precedence constraint between them.
Executable dtsEH1 = dtsEHOE.Executables.Add("STOCK:SendMailTask");
TaskHost th = (TaskHost)dtsEH1;
SendMailTask smTask = (SendMailTask)th.InnerObject;
smTask.Subject = "Send Mail task";
// Add a second executable to the DtsEventHandler.
Executable dtsEH2 = dtsEHOE.Executables.Add("STOCK:BulkInsertTask");
TaskHost th2 = (TaskHost)dtsEH2;
//Create the Enumerator. Since we added the DtsEventhandler to the
// package, then that's where to get the EventHandlers collection.
DtsEventHandlerEnumerator myEnum = pkg.EventHandlers.GetEnumerator();
Console.WriteLine("The collection contains the following values:");
int i = 0;
while ((myEnum.MoveNext()) && (myEnum.Current != null))
Console.WriteLine("[{0}] {1}", i++, myEnum.Current.Name);
}
}
}
Imports System
Imports System.Collections.Generic
Imports System.Text
Imports Microsoft.SqlServer.Dts.Runtime
Imports Microsoft.SqlServer.Dts.Tasks.SendMailTask
Imports Microsoft.SqlServer.Dts.Tasks.BulkInsertTask
Namespace DtsEventHandler_API
Class Program
Shared Sub Main(ByVal args() As String)
Dim pkg As Package = New Package()
' Set up a DtsEventHandler for the OnError event of the package.
Dim dtsEHOE As DtsEventHandler = CType(pkg.EventHandlers.Add("OnError"), DtsEventHandler)
Dim dtsEHW As DtsEventHandler = CType(pkg.EventHandlers.Add("OnWarning"), DtsEventHandler)
' When an OnError Event occurs, the Executables collection contains
' the items to run. For this example, there will be a SendMailtTask
' and a BulkInsertTask with a precedence constraint between them.
Dim dtsEH1 As Executable = dtsEHOE.Executables.Add("STOCK:SendMailTask")
Dim th As TaskHost = CType(dtsEH1, TaskHost)
Dim smTask As SendMailTask = CType(th.InnerObject, SendMailTask)
smTask.Subject = "Send Mail task"
' Add a second executable to the DtsEventHandler.
Dim dtsEH2 As Executable = dtsEHOE.Executables.Add("STOCK:BulkInsertTask")
Dim th2 As TaskHost = CType(dtsEH2, TaskHost)
'Create the Enumerator. Since we added the DtsEventhandler to the
' package, then that's where to get the EventHandlers collection.
Dim myEnum As DtsEventHandlerEnumerator = pkg.EventHandlers.GetEnumerator()
Console.WriteLine("The collection contains the following values:")
Dim i As Integer = 0
While (myEnum.MoveNext()) &&(myEnum.Current <> Nothing)
Console.WriteLine("[{0}] {1}",i = Console.WriteLine("[{0}] {1}",i + 1
End While
End Sub
End Class
End Namespace
Пример вывода:
Коллекция содержит следующие значения:
[0] OnError
[1] OnWarning
Комментарии
После создания переписчика или после вызова Reset метода, MoveNext метод должен быть вызван для продвижения переписчика к первому элементу коллекции перед чтением значения Current свойства; в противном случае Current метод не определён и создаёт исключение.
Current также вызывает исключение, если последний вызов MoveNext возвращаемого falseобъекта, указывающий конец коллекции.
Current не перемещает позицию перечислителя и последовательные вызовы для Current возврата одного и того же объекта до MoveNext вызова или Reset вызова.
Перечислитель остается допустимым, пока коллекция остается неизменной. Если в коллекцию вносятся изменения, такие как добавление, изменение или удаление элементов, переписчик считается недействительным и становится невосстановимым; Таким образом, следующий вызов в MoveNext или Reset вызывает InvalidOperationException. Если коллекция изменяется между вызовами MoveNext и Current, Current возвращает элемент, на который она настроена, даже если переписчик был аналирован.