Artırılarak ve olayları bir veri tanımlama bileşen akış
Bileşen geliştiricileri Yükselt bir alt küme tanımlanan olayların IDTSComponentEvents arabirim üzerinde kullandığı yöntemler arayarak ComponentMetaData özellik.Kullanarak özel olaylar tanımlayabilirsiniz EventInfos koleksiyonve bunları kullanarak yürütme sırasında yükseltmek FireCustomEvent yöntem.Bu bölüm nasıl oluşturulacağı ve bir olay başlatmak açıklar ve yönergeleri tasarım sırasında olayları artırmak saat sağlar.
Olaylarını tetiklemeye
Bileşenleri yükseltmek olayları kullanarak Fire<X> yöntemleri IDTSComponentMetaData100 arabirim.Bileşen tasarım ve yürütme sırasında olayları yükseltebilirsiniz.Tipik olarak, bileşen tasarım sırasında FireError ve FireWarning yöntemleri çaðrýlýr sırasında doğrulama.Bu olaylar iletileri görüntülemek Hata listesi bölmesinde Business Intelligence Development Studio ve bir bileşeni hatalı yapılandırıldığında bileşen kullanıcıları için görüş.
Bileşenleri de yürütme sırasında herhangi bir noktada olayları yükseltebilirsiniz.Olayları çalıştırıldığı gibi bileşenin kullanıcılara görüş bildirmek bileşen geliştiricileri izin verir.Arayan FireError yöntem yürütme sırasında büyük bir olasılıkla başarısız olmasına paket.
Tanımlama ve özel olaylar yükseltme
Özel olay tanımlama
Özel olaylar çağırarak oluşturulur Add yöntem, EventInfos koleksiyon.Bu koleksiyonu küme tarafından veri akışı görevi ve bileşen geliştirici ile için bir özellik olarak sunulan PipelineComponent temel sınıfaÖzel olaylar sırasında bileşen tarafından tanımlanmış ve veri akışı görevi tarafından tanımlanan özel olaylar bu sınıf içeren RegisterEvents yöntem.
Bir bileşenin özel olaylar içinde kalıcı olmaz paket xml.Bu nedenle, RegisterEvents yöntem çağrılır hem tasarım hem yürütme sırasında bileşen izin vermek için olayları tanımlamak için bunu raises.
The allowEventHandlers parameter of the Add method specifies whether the component allows DtsEventHandler objects to be created for the event.Dikkat DtsEventHandlers eşzamanlıdır.Bu nedenle bileşen yürütme kadar devam etmez bir DtsEventHandler özel olarak bağlanmış olay yürütme bitirdi.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 olayý çaðýrmak
Bileşenleri yükseltmek özel olaylar çağırarak FireCustomEvent yöntem ve sağlama adı, metin ve parametreleri olay.If the allowEventHandlers parameter is true, any DtsEventHandlers that are created for the custom event are executed by the SSIS run-time engine.
Özel olay örnek
Aşağıdaki kod örneği, özel bir olay sırasında tanımlayan bir bileşeni gösterir RegisterEvents , yöntem ve çalışma sırasında olay harekete geçiren saat çağırarak FireCustomEvent yö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 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
|
Ayrıca bkz.