Yükseltme ve Events'i tanımlama bir veri akışı bileşeni

Bileşen geliştiricileri tanımlanan olayların bir altkümesini yükseltebilirsiniz IDTSComponentEvents üzerinde kullandığı yöntemleri çağırmadan arabirimini ComponentMetaData() özellik. Özel olaylar kullanarak da tanımlayabilirsiniz EventInfos() koleksiyon ve bunları kullanarak yürütme sırasında yükseltmenizi FireCustomEvent(String, String, array<Object[]%, String, Boolean%) yöntem. Bu bölümde, oluşturmak ve bir olay oluşturmak açıklar ve saat, tasarım zamanında olayları artırmak yönergeleri sağlar.

Olay'ı yükseltme

Bileşenler, olaylar kullanarak yükseltmek Fire<X> yöntemleri IDTSComponentMetaData100 arabirim. Olaylar, bileşen tasarımı ve çalışması sırasında yükseltebilirsiniz.Genellikle, bileşen tasarım sırasında FireError(Int32, String, String, String, Int32, Boolean%) ve FireWarning(Int32, String, String, String, Int32) yöntemleri sırasında doğrulama da denir. Bu olaylar, iletileri görüntülemek Hata listesi pane of Business Intelligence Development Studio ve bir bileşeni yanlış yapılandırıldığında, bileşeninin kullanıcılara geri besleme sağla.

Bileşenler, yürütme sırasında herhangi bir noktada olayları da yükseltebilirsiniz.Olayları gibi onu çalıştırır, bileşenin kullanıcıların geribildirim sağlamak bileşen geliştiricileri izin verir.Arama FireError(Int32, String, String, String, Int32, Boolean%) Yöntem yürütme sırasında paket başarısız olasıdır.

Tanımlama ve özel olaylar'ı yükseltme

Özel bir olay tanımlama

Özel olaylar çağrılarak oluşturulan Add(String, String, Boolean, array<String[]%, array<UInt16[]%, array<String[]%) yöntem EventInfos() koleksiyon. Bu koleksiyon veri akışı göreve göre küme ve bileşen geliştirici sağlanan bir özellik olarak PipelineComponent taban sınıf. Bu sınıf ve veri akışı görevi sırasında bileşen tarafından tanımlanan özel olaylar tarafından tanımlanan özel olaylar içeren RegisterEvents() yöntem.

Özel olaylar bir bileşenin XML pakette kalıcı olmaz.Bu nedenle, RegisterEvents() hem tasarım ve yürütme sırasında bileşen izin vermek için bunu oluşturan olayları tanımlamak için bu yöntem çaðrýlýr.

The allowEventHandlers parameter of the Add(String, String, Boolean, array<String[]%, array<UInt16[]%, array<String[]%) yöntem specifies whether the component allows DtsEventHandler objects to be created for the olay. Dikkat DtsEventHandlers zaman uyumlu olduğu belirtilmemiştir. Bu nedenle bileşen yürütme kadar sürdürmüyor bir DtsEventHandler Özel için bağlı olay yürütme tamamlandı. If the allowEventHandlers parameter is true, each parameter of the event is automatically made available to any DtsEventHandler objects through variables that are created and populated automatically by the SQL Server Integration Services runtime.

Özel bir olay'ı yükseltme

Çağırarak, özel olaylar bileşenlerini yükseltmenizi FireCustomEvent(String, String, array<Object[]%, String, Boolean%) yöntem ve adı, metin ve olay parametreleri sağlar. If the allowEventHandlers parameter is true, any DtsEventHandlers that are created for the custom olay are executed by the SSIS run-saat engine.

Özel bir olay örneği

Aşağıdaki kod örneği, özel bir olay sırasında tanımlayan bir bileşeni gösterir RegisterEvents() yöntem ve sonra da çalışma sırasında olay harekete geçiren saat arayarak FireCustomEvent(String, String, array<Object[]%, String, Boolean%) yöntem.

public override void RegisterEvents()
{
    string [] parameterNames = new string[2]{"RowCount", "StartTime"};
    ushort [] parameterTypes = new ushort[2]{ DtsConvert.VarTypeFromTypeCode(TypeCode.Int32), DtsConvert.VarTypeFromTypeCode(TypeCode.DateTime)};
    string [] parameterDescriptions = new string[2]{"The number of rows to sort.", "The start time of the Sort operation."};
    EventInfos.Add("StartingSort","Fires when the component begins sorting the rows.",false,ref parameterNames, ref paramterTypes, ref parameterDescriptions);
}
public override void ProcessInput(int inputID, PipelineBuffer buffer)
{
    while (buffer.NextRow())
    {
       // Process buffer rows.
    }

    IDTSEventInfo100 eventInfo = EventInfos["StartingSort"];
    object []arguments = new object[2]{buffer.RowCount, DateTime.Now };
    ComponentMetaData.FireCustomEvent("StartingSort", "Beginning sort operation.", ref arguments, ComponentMetaData.Name, ref FireSortEventAgain);
}
Public  Overrides Sub RegisterEvents() 
  Dim parameterNames As String() = New String(2) {"RowCount", "StartTime"} 
  Dim parameterTypes As System.UInt16() = New System.UInt16(2) {DtsConvert.VarTypeFromTypeCode(TypeCode.Int32), DtsConvert.VarTypeFromTypeCode(TypeCode.DateTime)} 
  Dim parameterDescriptions As String() = New String(2) {"The number of rows to sort.", "The start time of the Sort operation."} 
  EventInfos.Add("StartingSort", "Fires when the component begins sorting the rows.", False, parameterNames, paramterTypes, parameterDescriptions) 
End Sub 

Public  Overrides Sub ProcessInput(ByVal inputID As Integer, ByVal buffer As PipelineBuffer) 
  While buffer.NextRow 
  End While 
  Dim eventInfo As IDTSEventInfo100 = EventInfos("StartingSort") 
  Dim arguments As Object() = New Object(2) {buffer.RowCount, DateTime.Now} 
  ComponentMetaData.FireCustomEvent("StartingSort", _
    "Beginning sort operation.", arguments, _
    ComponentMetaData.Name, FireSortEventAgain) 
End Sub
Integration Services icon (small) Tümleştirme Hizmetleri ile güncel kalın

Karşıdan yüklemeler, makaleleri, örnekler ve en son Microsoft video yanı sıra, seçili topluluğun çözümleri için ziyaret Integration Services sayfa MSDN veya TechNet:

Bu güncelleştirmelerin otomatik bildirim için kullanılabilir RSS akışlarına abone olmak sayfa.