Yükseltme ve olayları bir veri tanımlama bileşen akış

Bileşen geliştiricileri zam tanımlanan olaylar kümesini IDTSComponentEventsarabirimi üzerinde kullandığı yöntemler arayarak ComponentMetaDataözellik. Özel olaylar kullanarak da tanımlayabilirsiniz EventInfostoplama ve bunları kullanarak yürütme sırasında artırmak FireCustomEventyöntemi. Bu bölüm, oluşturmak ve bir olayı başlatmak açıklar ve tasarım sırasında olayları artırmak zaman yönergeleri sağlar.

Olaylar yükseltme

Bileşenleri yükseltmek olayları kullanarak Fire<X>yöntemleri IDTSComponentMetaData100arabirimi. Bileşen tasarımı ve yürütme sırasında olayları yükseltebilirsiniz. Genellikle sırasında bileşen tasarımı, FireErrorve FireWarningsırasında doğrulama yöntemleri olarak adlandırılan. Bu olayları iletileri görüntüleme Hata listesi bölmesinde SQL Server Veri Akışı Araçları (SSDT)ve bir bileşeni yanlış yapılandırıldığında bileşen kullanıcılara görüşünüzü.

Bileşenleri de yürütme sırasında herhangi bir noktada olayları yükseltebilirsiniz. Olaylar bileşen geliştiricileri yürütülür gibi kullanıcıların bileşen için geribildirim sağlar. Arayan FireErroryöntemi yürütme sırasında büyük bir olasılıkla paket başarısız.

Tanımlama ve özel olaylar yükseltme

Özel olay tanımlama

Özel olaylar çağrılarak oluşturulan Addyöntemi EventInfoskoleksiyonu. Bu koleksiyon veri akışı görev tarafından ayarlayın ve bir özellik olarak bileşeni geliştirici sağlanan PipelineComponenttemel sınıf Bu sınıf, özel etkinlikler, özel olaylar sırasında bileşen tarafından tanımlanmış ve veri akışı görev tarafından tanımlanan içerir RegisterEventsyöntemi.

Özel olaylar bileşeni xml paketini kalıcı olmaz. Bu nedenle, RegisterEventsyöntemi hem tasarım hem yürütme sırasında bileşen izin vermek o tutarsa olayları tanımlamak için denir.

allowEventHandlersParametresi Addyöntemi bileşenin izin verip vermediğini belirtir DtsEventHandlerolay için oluşturulacak nesneler. Dikkat DtsEventHandlerszaman uyumlu olduğu belirtilmemiştir. Bu nedenle bileşen yürütme kadar Çağrılmıyor bir DtsEventHandlerbağlı özel olay yürütme bitirdi. Eğer allowEventHandlersparametresi true, olayın her parametre otomatik olarak herhangi bir kullanılabilir hale DtsEventHandlernesneler arasında oluşturulan ve otomatik olarak tarafından doldurulan değişkenleri SQL Server  Integration Servicesçalışma.

Özel olay yükseltme

Bileşenleri yükseltmek özel olaylar çağırarak FireCustomEventyöntemi ve parametreleri olay, metin ve adı sağlama. Eğer allowEventHandlersparametresi true, herhangi bir DtsEventHandlersözel olay tarafından yürütülür için oluşturulan SSISçalışma zamanı altyapısı.

Özel olay örnek

Aşağıdaki kod örneği, özel bir olay sırasında tanımlar bir bileşeni gösterir RegisterEventsyöntem ve olay çalışma zamanında çağırarak tutarsa FireCustomEventyöntemi.

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 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
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 simgesi (küçük) Integration Services ile güncel kalın

En son karşıdan yüklemeler, makaleler, örnekler ve Microsoft video yanı sıra topluluk seçili çözümleri için ziyaret Integration ServicesMSDN sayfası:


Bu güncelleştirmelerle ilgili otomatik bildirim almak için, sayfadaki RSS akışlarına abone olun.

Ayrıca bkz.

Kavramlar

SSIS paketi olay işleyicileri

Diğer Kaynaklar

Creating Package Event Handlers