Udostępnij za pośrednictwem


Korzystanie ze zmiennych zadania skryptu

Zmienne utworzyć zadanie skryptu do wymiany danych z innych obiektów w pakiet.Aby uzyskać więcej informacji, zobacz Integracja usług zmiennych.

Używa zadania skryptu Variables Właściwość Dts obiektu do odczytu i zapisu do Variable obiektów w pakiet.

Ostrzeżenie

Value Właściwość Variable klasy jest typu Object.Ponieważ zadania skryptu Option Strict włączony, musi oddać Value właściwość do odpowiedniego typu przed użyciem go

Dodawanie istniejących zmiennych do ReadOnlyVariables i ReadWriteVariables list w Script Editor zadania udostępnić skrypt niestandardowy.Należy pamiętać, że w nazwach zmiennych są przypadek-poufne.W skrypcie dostępu obu typów za pomocą zmiennych Variables Właściwość Dts obiektu.Użyj Value właściwość do odczytu i zapisu do poszczególnych zmiennych.Zadania skryptu zarządza przezroczysty, blokowania, skrypt odczytuje i modyfikuje wartości zmiennych.

Można użyć Contains metoda Variables kolekcja zwrócony 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 zadań skryptu.Podczas korzystania z VariableDispenser, musi obsługiwać zarówno blokowaniem semantyka i odlewania typy danych dla wartości zmiennych w swój własny kod.Należy użyć VariableDispenser Właściwość zamiast Variables Właściwości, jeśli chcesz pracować z zmienna, która nie jest dostępny na projekt czas , ale jest tworzona programowo przy uruchomieniu czas.

Za pomocą zadania skryptu w kontenerze Foreach pętli

Podczas zadania skrypt wielokrotnie kontener Foreach pętli, skrypt zazwyczaj musi pracować z zawartością bieżącego element moduł wyliczający.Na przykład podczas korzystania z modułu wyliczającego pliku Foreach skrypt musi znać bieżącej nazwy pliku; Podczas korzystania z modułu wyliczającego Foreach ADO skrypt musi znać zawartość kolumny w bieżącym wierszu danych.

Zmienne umożliwiają to komunikację między kontener Foreach pętli i zadania skryptu.Na Mapowań zmiennej strona Edytor pętli Foreach, przypisywania zmiennych do każdego elementu danych, który jest zwracany przez pojedynczy element wyliczany.Na przykład modułu wyliczającego pliku Foreach zwraca tylko nazwa pliku z indeksem 0 i dlatego wymaga tylko jednej zmiennej mapowanie, wymaga modułu wyliczającego, który zwraca kilka kolumn danych w każdym wierszu, można zamapować inną zmienną w każdej kolumna, którą chcesz użyć zadania skryptu.

Po mapowania elementów wyliczanych do zmiennych trzeba dodać zmiennych mapowane do ReadOnlyVariables Właściwość skryptu strona Script Editor zadania udostępnić skryptu.Zobacz przykład zadania skryptu kontener Foreach pętli, który przetwarza pliki obrazu w folderze Praca z obrazami z zadań skryptu.

Przykład zmiennych

Poniższy przykład ilustruje sposób dostępu i używać zmiennych w zadania skryptu do określenia ścieżka pakiet przepływu pracy.Próbki zakłada utworzono całkowitą zmiennych o nazwie CustomerCount i MaxRecordCount i dodać je do ReadOnlyVariables kolekcja w Script Editor zadania.CustomerCount Zmienna zawiera liczbę rekordów klientów do zaimportowania.Jeśli jego wartość jest większa niż wartość MaxRecordCount, błąd raporty zadania skryptu.Gdy wystąpi awaria, ponieważ MaxRecordCount próg został przekroczony, ścieżka błąd przepływu pracy można zaimplementować wszelkie wymagane czyszczenie up.

Aby pomyślnie skompilowany próbki, należy 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;
        }

    }

} 
Ikona usług Integration Services (mała)Bieżąco z usług integracji

Najnowsze pliki do pobrania, artykuły, próbki i wideo firmy Microsoft, jak również wybranych rozwiązań ze Wspólnoty, odwiedź witrynę Integration Services strona na MSDN i TechNet:

Aby otrzymywać automatyczne powiadomienia dotyczące tych aktualizacji, zasubskrybuj źródła danych RSS dostępne na tej stronie.