Udostępnij za pośrednictwem


Podnoszenie i definiowanie zdarzenia w składnik przepływu danych

Deweloperzy składników można podnieść podzbiór zdarzeń, zdefiniowany w IDTSComponentEvents Interfejs przez wywołanie metody narażone na ComponentMetaData() Właściwość. Można także zdefiniować zdarzeń niestandardowych za pomocą EventInfos() Kolekcja i podwyższyć ich podczas wykonywania za pomocą FireCustomEvent(String, String, array<Object[]%, String, Boolean%) Metoda. W tej sekcji opisano sposób tworzenia i podwyższyć zdarzenie i zawiera wskazówki, gdy powinny wywołania zdarzeń w czasie projektowania.

Podnoszenie zdarzenia

Składniki wywołania zdarzeń za pomocą Fire<X> metody IDTSComponentMetaData100 interfejs. Podczas projektowania składników i wykonywania może wywołania zdarzeń.Zazwyczaj podczas projektowania składnika FireError(Int32, String, String, String, Int32, Boolean%) i FireWarning(Int32, String, String, String, Int32) metody są nazywane podczas sprawdzania poprawności. Te zdarzenia, wyświetlanie komunikatów w Lista błędów pane of Business Intelligence Development Studio i wyraź swoją opinię użytkownikom składnika, gdy składnik jest niepoprawnie skonfigurowany.

Składniki można również podnieść zdarzenia w dowolnym punkcie podczas wykonywania.Zdarzenia umożliwiają projektantom składnika o wyrażanie opinii użytkowników składnika, jak je wykonuje.Wywołanie FireError(Int32, String, String, String, Int32, Boolean%) Metoda podczas wykonywania prawdopodobnie może się nie powieść pakiet.

Definiowanie i podnoszenie zdarzenia niestandardowego

Definiowanie zdarzeń niestandardowych

Zdarzenia niestandardowe są tworzone przez wywołanie Add(String, String, Boolean, array<String[]%, array<UInt16[]%, array<String[]%) Metoda EventInfos() Kolekcja. Ta kolekcja jest ustawiana przez zadanie przepływ danych i dostarczane jako właściwość deweloper składnika za pomocą PipelineComponent Klasa podstawowa. Ta klasa zawiera zdarzeń niestandardowych, zdefiniowanych przez zadanie przepływ danych i zdarzeń niestandardowych, zdefiniowanych przez składnik podczas RegisterEvents() Metoda.

Zdarzenia niestandardowego składnika nie są zachowywane w pakiecie XML.Dlatego też RegisterEvents() Metoda jest wywoływana podczas zarówno projektowania i wykonywania zezwalająca składnika do zdefiniowania zdarzenia niemożliwe.

The allowEventHandlers parameter of the Add(String, String, Boolean, array<String[]%, array<UInt16[]%, array<String[]%) metoda specifies whether the component allows DtsEventHandler objects to be created for the zdarzenie. Należy zauważyć, że DtsEventHandlers są synchroniczne. W związku z tym składnika nie wznawia realizacji do czasu DtsEventHandler dołączone do niestandardowe zdarzenie zostanie zakończone wykonywanie. 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.

Podnoszenie zdarzenie niestandardowego

Składniki wywołania zdarzeń niestandardowych, wywołując FireCustomEvent(String, String, array<Object[]%, String, Boolean%) Metoda i nazwy, tekstu i parametry wystąpienia zdarzenie. Jeśli allowEventHandlers parametr jest true, wszystkie DtsEventHandlers które są tworzone dla niestandardowego zdarzenie są wykonywane przez SSIS Aparat czas wykonywania.

Przykładowe niestandardowe zdarzenie

W poniższym przykładzie kodu pokazano składnik, który definiuje zdarzenie niestandardowego ciągu RegisterEvents() metody i zdarzenie w czasie wykonywania, wywołując raises FireCustomEvent(String, String, array<Object[]%, String, Boolean%) Metoda.

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) Konfiguracja w aktualizacji z usług integracja Services pobytu

Najnowsze pliki do pobrania, artykuły, próbki, i pliki wideo firmy Microsoft, jak również wybranego rozwiązania od Wspólnoty, odwiedź witrynę Integration Services strona w witrynie MSDN lub TechNet:

Automatycznego powiadomienie tych aktualizacji należy subskrybować źródła danych RSS, które jest dostępne strona.