Używanie zmiennych w składniku skryptu

Dotyczy:SQL Server Środowisko SSIS Integration Runtime w usłudze Azure Data Factory

Zmienne przechowują wartości, które pakiet oraz jego kontenery, zadania i obsługiwacze zdarzeń mogą używać w czasie działania. Aby uzyskać więcej informacji, zobacz zmienne Integration Services (SSIS).

Możesz udostępnić istniejące zmienne do dostępu tylko do odczytu lub do czytania/zapisu za pomocą własnego skryptu, wpisując listy zmiennych oddzielone przecinkami w polach ReadOnlyVariables i ReadWriteVariables na stronie skryptu w Script Transformation Editor. Pamiętaj, że nazwy zmiennych są zależne od wielkości liter. Użyj właściwości Value do odczytu i zapisu do poszczególnych zmiennych. Komponent skryptowy zajmuje się wszelkim wymaganym blokowaniem za kulisami, podczas gdy twój skrypt manipuluje zmiennymi w czasie działania.

Ważna

Kolekcja zmiennych ReadWriteZmiennych jest dostępna tylko w metodzie PostExekucyjnej , aby zmaksymalizować wydajność i zminimalizować ryzyko blokady konfliktów. Dlatego nie można bezpośrednio zwiększać wartości zmiennej pakietu podczas przetwarzania każdego wiersza danych. Zamiast tego zwiększ wartość zmiennej lokalnej i ustaw wartość zmiennej pakietowej na wartość zmiennej lokalnej w metodzie PostExecute po przetworzeniu wszystkich danych. Możesz także użyć tej VariableDispenser właściwości, aby obejść to ograniczenie, jak opisano później w tym temacie. Jednak zapisywanie bezpośrednio do zmiennej pakietu podczas przetwarzania każdego wiersza negatywnie wpływa na wydajność i zwiększa ryzyko zablokowania konfliktów.

Więcej informacji o stronie skryptów w edytorze transformacji skryptów można znaleźć w artykule Konfiguracja komponentu skryptowego w edytorze komponentów skryptowych oraz edytor transformacji skryptów (strona skryptów).

Komponent Script tworzy klasę kolekcji zmiennych w elemencie projektu ComponentWrapper z mocno typowaną właściwością accessora dla wartości każdej zmiennej wstępnej, gdzie własność ma taką samą nazwę jak sama zmienna. Ta kolekcja jest udostępniana przez własność Variables klasy ScriptMain . Właściwość accessora zapewnia uprawnienia tylko do odczytu lub odczytu/zapisu wartości zmiennej, w zależności od potrzeb. Na przykład, jeśli dodałeś zmienną MyIntegerVariable całkowitoliczbową nazwaną do listy ReadOnlyVariables , możesz pobrać jej wartość w swoim skrypcie, używając następującego kodu:

Dim myIntegerVariableValue As Integer = Me.Variables.MyIntegerVariable

Możesz także użyć VariableDispenser tej właściwości, dostępnej przez wywołanie Me.VariableDispenser, aby pracować ze zmiennymi w komponencie Script. W tym przypadku nie używasz typowanych i nazwanych właściwości accessorów dla zmiennych, lecz bezpośrednio do nich uzyskujesz. Używając VariableDispenser, musisz zajmować się zarówno semantyką blokowania, jak i obsługą typów danych dla wartości zmiennych w swoim kodzie. Musisz użyć tej VariableDispenser właściwości zamiast nazwanych i typowanych właściwości accessor, jeśli chcesz pracować ze zmienną, która nie jest dostępna w momencie projektowania, ale jest tworzona programowo w czasie działania.