Udostępnij za pośrednictwem


Za pomocą zmiennych w zadaniu skryptów

Zmienne utworzyć zadanie skryptu do wymiany danych z innych obiektów w pakiet.Aby uzyskać więcej informacji zobaczIntegration Services Variables.

Korzysta z zadań skryptów Variables() Właściwość Dts obiekt, aby odczytywać i zapisywać Variable obiekty w pakiecie.

Uwaga

The Value() właściwość of the Variable class is of type Object. Ponieważ zadanie skryptu jest Option Strict włączone, należy oddać Value() Właściwość do odpowiedniego typu, zanim będzie można go używać.

Dodawanie istniejących zmiennych, które ReadOnlyVariables() i ReadWriteVariables() Wyświetla listę w Edytor zadań skryptu , aby udostępnić je do skryptu niestandardowego.Należy pamiętać, że jest uwzględniana wielkość liter w nazwach zmiennych.W skrypcie, jest dostęp do obu typów, za pomocą zmiennych Variables() Właściwość Dts obiekt. Użycie Value Właściwość odczytywać i zapisywać dane w poszczególnych zmiennych. Zadanie skryptu zarządza przezroczysty, blokowania, skrypt odczytuje i modyfikuje wartości zmiennych.

Można użyć Contains(Object) Metoda Variables kolekcja zwróconego przez Variables() Właściwość, aby sprawdzić, czy istnieje zmienna przed użyciem go w kodzie.

Można również użyć VariableDispenser() Właściwość)Dts.VariableDispenser) do pracy z zmiennych w zadania skryptu. Podczas korzystania z VariableDispenser(), musi obsługiwać semantyka blokowania i rzutowania typów danych dla wartości zmiennych, które w własny kod. Należy użyć VariableDispenser() Właściwość zamiast Variables() Właściwość, aby pracować z zmienna, która nie jest dostępny na projekt czas, ale jest tworzona programowo przy uruchomieniu czas.

Za pomocą skryptu zadania w pętlę Foreach kontener

Gdy skrypt uruchamiany przez zadanie wielokrotnie w pętlę Foreach kontener, skrypt zwykle potrzebne do pracy z zawartością bieżącego element moduł wyliczający.Na przykład podczas korzystania z numeratora Foreach plik skryptu musi wiedzieć, bieżącej nazwy pliku, używając numeratora Foreach ADO, skrypt musi wiedzieć, zawartość kolumn w bieżącym wierszu danych.

Zmienne umożliwiają to komunikację między kontener Foreach pętli i zadania skryptu.Na Zmienna mapowania stronaEdytor foreach pętli, zmienne przypisywać do każdego elementu danych, który jest zwracany przez pojedynczy element wyliczany.Na przykład numeratora plik Foreach zwraca tylko nazwę pliku na indeks 0 i wymaga tylko jedno mapowanie zmiennej, moduł wyliczający, która zwraca kilka kolumn danych w każdym wierszu wymaga do mapowania różnych zmiennej do każdej kolumna, która ma być używany do wykonywania zadania, skrypt.

Po elementów wyliczanych są mapowane do zmiennych, następnie należy dodać mapowane zmienne, które mają zostać ReadOnlyVariables Właściwość Skrypt stronaEdytor zadań skryptu , aby udostępnić je do skryptu.Aby zapoznać się z zadań skryptów w pętlę Foreach kontener, przetwarza pliki obrazów w folderze, zobacz Praca z obrazów z zadaniem skryptów.

Przykład zmiennych

Poniższy przykład ilustruje sposób dostępu do zmiennych w zadaniu skryptów do określenia ścieżka do pakiet przepływu pracy.Próbki zakłada się, użytkownik utworzył całkowitą zmiennych o nazwie CustomerCount i MaxRecordCount i dodać je do ReadOnlyVariables Kolekcja w Edytor zadań skryptu.The CustomerCount variable contains the number of customer records to be imported.Jeśli jego wartość jest większa niż wartość MaxRecordCount, zadanie skryptu zgłasza błąd. Gdy wystąpi awaria, ponieważ MaxRecordCount został przekroczony próg, ścieżka błąd przepływu pracy, może wprowadzić wszelkie wymagane oczyszczania.

Aby skompilować pomyślnie próbki, trzeba dodać odwołanie do wirtualny plik dziennika Microsoft.SqlServer.ScriptTask.

Public Sub Main()

    Dim customerCount As Integer
    Dim maxRecordCount As Integer

    If Dts.Variables.Contains("CustomerCount") = True AndAlso _
        Dts.Variables.Contains("MaxRecordCount") = True Then

        customerCount = _
            CType(Dts.Variables("CustomerCount").Value, Integer)
        maxRecordCount = _
            CType(Dts.Variables("MaxRecordCount").Value, Integer)

    End If

    If customerCount > maxRecordCount Then
            Dts.TaskResult = ScriptResults.Failure
    Else
            Dts.TaskResult = ScriptResults.Success
    End If

End Sub
using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;

public class ScriptMain
{



    public void Main()
    {
        int customerCount;
        int maxRecordCount;

        if (Dts.Variables.Contains("CustomerCount")==true&&Dts.Variables.Contains("MaxRecordCount")==true)

        {
            customerCount = (int) Dts.Variables["CustomerCount"].Value;
            maxRecordCount = (int) Dts.Variables["MaxRecordCount"].Value;

        }

        if (customerCount>maxRecordCount)
        {
            Dts.TaskResult = (int)ScriptResults.Failure;
        }
        else
        {
            Dts.TaskResult = (int)ScriptResults.Success;
        }

    }

} 
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.