Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Środowisko SSIS Integration Runtime w usłudze Azure Data Factory
Przed wykonaniem zadanie przepływu danych jest określane jako w stanie projektowym, ponieważ podlega stopniowym zmianom. Zmiany mogą obejmować dodawanie lub usuwanie komponentów, dodawanie lub usuwanie obiektów ścieżek łączących komponenty oraz zmiany w metadanych tych komponentów. Gdy zachodzą zmiany metadanych, komponent może monitorować i reagować na zmiany. Na przykład komponent może zakazać pewnych zmian lub wprowadzać dodatkowe zmiany w odpowiedzi na zmianę. W czasie projektowania projektant wchodzi w interakcję z komponentem poprzez interfejs projektowy IDTSDesigntimeComponent100 .
Design-Time Wdrożenie
Interfejs w czasie projektowania komponentu jest opisywany przez interfejs.IDTSDesigntimeComponent100 Chociaż nie implementujesz tego interfejsu wprost, znajomość metod zdefiniowanych w tym interfejsie pomoże Ci zrozumieć, które metody PipelineComponent klasy bazowej odpowiadają instancji w czasie projektowania komponentu.
Gdy komponent jest ładowany w SQL Server Data Tools (SSDT), instancja komponentu w czasie projektowania jest instancjonowana, a metody interfejsu IDTSDesigntimeComponent100 są wywoływane podczas edycji komponentu. Implementacja klasy bazowej pozwala nadpisać tylko te metody, których wymaga komponent. W wielu przypadkach możesz nadpisać te metody, aby zapobiec niewłaściwym edycjom komponentu. Na przykład, aby zapobiec dodaniu wyjścia do komponentu, należy nadpisać metodę InsertOutput . W przeciwnym razie, gdy wywołana jest implementacja tej metody przez klasę bazową, dodaje ona wyjście do komponentu.
Niezależnie od celu czy funkcjonalności komponentu, powinieneś nadpisać , ProvideComponentPropertiesValidate, i ReinitializeMetaData metody. Więcej informacji o Validate i , ReinitializeMetaDatazobacz Validating a Przepływ danych Component.
Metoda ProvideComponentProperties
Inicjalizacja komponentu zachodzi w tej metodzie ProvideComponentProperties . Ta metoda jest wywoływana przez SSIS Designer, gdy komponent jest dodawany do zadania przepływu danych i jest podobna do konstruktora klas. Programiści komponentów powinni tworzyć i inicjować swoje wejścia, wyjścia oraz własne właściwości podczas wywołania tej metody. Metoda różni ProvideComponentProperties się od konstruktora tym, że nie jest wywoływana za każdym razem, gdy instancja w czasie projektowania lub instancja w czasie działania komponentu jest wykonywana.
Implementacja klasy bazowej tej metody dodaje wejście i wyjście do komponentu oraz przypisuje identyfikator wejścia do SynchronousInputID właściwości. Jednak w SQL Server obiekty wejściowe i wyjściowe dodawane przez klasę bazową nie są nazwane. Pakiety zawierające komponent z obiektami wejściowymi lub wyjściowymi, których właściwość Name nie jest ustawiona, nie załadują się pomyślnie. Dlatego używając podstawowej implementacji, musisz przypisać wartości jawnie do właściwości Name domyślnego wejścia i wyjścia.
public override void ProvideComponentProperties()
{
/// TODO: Reset the component.
/// TODO: Add custom properties.
/// TODO: Add input objects.
/// TODO: Add output objects.
}
Public Overrides Sub ProvideComponentProperties()
' TODO: Reset the component.
' TODO: Add custom properties.
' TODO: Add input objects.
' TODO: Add output objects.
End Sub
Tworzenie właściwości niestandardowych
Wywołanie ProvideComponentProperties metody polega na tym, że deweloperzy komponentów powinni dodać własne właściwości (IDTSCustomProperty100) do komponentu. Własności niestandardowe nie mają właściwości typu danych. Typ danych niestandardowej właściwości jest ustalany przez typ danych wartości, którą przypisasz jej Value właściwości. Jednak po przypisaniu wartości początkowej do własności niestandardowej nie możesz przypisać wartości z innym typem danych.
Note
Interfejs IDTSCustomProperty100 ma ograniczone wsparcie dla wartości właściwości typu Object. Jedynym obiektem, który możesz przechować jako wartość własności niestandardowej, jest tablica prostych typów, takich jak łańcuchy znaków lub liczby całkowite.
Możesz wskazać, że Twoja własność niestandardowa obsługuje wyrażenia właściwości, ustawiając wartość jej ExpressionType właściwości na CPET_NOTIFY z DTSCustomPropertyExpressionType wyliczenia, jak pokazano w poniższym przykładzie. Nie musisz dodawać żadnego kodu, aby obsługiwać lub weryfikować wyrażenie właściwości wpisane przez użytkownika. Możesz ustawić domyślną wartość dla tej właściwości, zweryfikować jej wartość oraz odczytać i używać jej wartości normalnie.
IDTSCustomProperty100 myCustomProperty;
...
myCustomProperty.ExpressionType = DTSCustomPropertyExpressionType.CPET_NOTIFY;
Dim myCustomProperty As IDTSCustomProperty100
...
myCustomProperty.ExpressionType = DTSCustomPropertyExpressionType.CPET_NOTIFY
Możesz ograniczyć użytkowników do wyboru niestandardowej wartości właściwości z enumeracji, korzystając z tej TypeConverter właściwości, jak pokazano w poniższym przykładzie, zakładając, że zdefiniowałeś publiczną enumerację o nazwie MyValidValues.
IDTSCustomProperty100 customProperty = outputColumn.CustomPropertyCollection.New();
customProperty.Name = "My Custom Property";
// This line associates the type with the custom property.
customProperty.TypeConverter = typeof(MyValidValues).AssemblyQualifiedName;
// Now you can use the enumeration values directly.
customProperty.Value = MyValidValues.ValueOne;
Dim customProperty As IDTSCustomProperty100 = outputColumn.CustomPropertyCollection.New
customProperty.Name = "My Custom Property"
' This line associates the type with the custom property.
customProperty.TypeConverter = GetType(MyValidValues).AssemblyQualifiedName
' Now you can use the enumeration values directly.
customProperty.Value = MyValidValues.ValueOne
Więcej informacji można znaleźć w sekcji "Generalized Type Conversion" oraz "Implementing a Type Converter" w bibliotece MSDN.
Możesz określić okno dialogowe edytora niestandardowego dla wartości własnej właściwości, korzystając z tej UITypeEditor właściwości, jak pokazano w poniższym przykładzie. Po pierwsze, musisz stworzyć niestandardowy edytor typów, który dziedziczy z System.Drawing.Design.UITypeEditor, jeśli nie możesz znaleźć istniejącej klasy edytora typów UI odpowiadającej Twoim potrzebom.
public class MyCustomTypeEditor : UITypeEditor
{
...
}
Public Class MyCustomTypeEditor
Inherits UITypeEditor
...
End Class
Następnie określ tę klasę jako wartość UITypeEditor właściwości Twojej niestandardowej nieruchomości.
IDTSCustomProperty100 customProperty = outputColumn.CustomPropertyCollection.New();
customProperty.Name = "My Custom Property";
// This line associates the editor with the custom property.
customProperty.UITypeEditor = typeof(MyCustomTypeEditor).AssemblyQualifiedName;
Dim customProperty As IDTSCustomProperty100 = outputColumn.CustomPropertyCollection.New
customProperty.Name = "My Custom Property"
' This line associates the editor with the custom property.
customProperty.UITypeEditor = GetType(MyCustomTypeEditor).AssemblyQualifiedName
Więcej informacji można znaleźć w sekcji "Implementing a UI Type Editor" w bibliotece MSDN.