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
Zadanie Script, dostępne w oknie Control Flow projektanta usług integracyjnych, oraz komponent Script, dostępny w oknie Przepływ danych, mają zupełnie inne zastosowania w pakiecie Integration Services. Zadanie to jest narzędzie do sterowania przepływem ogólnego przeznaczenia, podczas gdy komponent pełni rolę źródła, transformacji lub miejsca docelowego w przepływie danych. Mimo różnych zastosowań, zadanie skryptowe i komponent skryptowy mają pewne podobieństwa w narzędziach programistycznych, których używają, oraz obiektach w pakiecie, które udostępniają programistom. Zrozumienie ich podobieństw i różnic może pomóc ci efektywniej wykorzystać zarówno zadanie, jak i komponent.
Podobieństwa między zadaniem Script a komponentem script
Zadanie Script oraz komponent Script mają następujące wspólne cechy.
| Funkcja | Description |
|---|---|
| Dwa tryby czasu projektowego | Zarówno w zadaniu, jak i w komponencie zaczynasz od określenia właściwości w edytorze, a następnie przechodzisz do środowiska programistycznego, aby pisać kod. |
| Microsoft Visual Studio Narzędzia do zastosowań (VSTA) | Zarówno zadanie, jak i komponent korzystają z tego samego IDE VSTA i wspierają kod napisany w Microsoft Visual Basic lub Microsoft Visual C#. |
| Skrypty prekompilowane | Począwszy od SQL Server 2008 Integration Services (SSIS), wszystkie skrypty są wstępnie kompilowane. W wcześniejszych wersjach można było określić, czy skrypty były wstępnie skompilowane. Skrypt jest wstępnie kompilowany do kodu binarnego, co pozwala na szybsze wykonywanie, ale kosztem zwiększania rozmiaru pakietu. |
| Debugging | Zarówno zadanie, jak i komponent obsługują punkty przerwania i przechodzenie przez kod podczas debugowania w środowisku projektowym. Więcej informacji można znaleźć w artykule Coding and Debuggging the Script Task oraz Coding and Debuggging the Script Component. |
Różnice między zadaniem Script a komponentem script
Zadanie Script i komponent Script mają następujące istotne różnice.
| Funkcja | Zadanie skryptu | Składnik skryptu |
|---|---|---|
| Przepływ sterowania / przepływ danych | Zadanie skryptowe jest skonfigurowane na zakładce Control Flow w projektantze i działa poza przepływem danych pakietu. | Komponent Script jest skonfigurowany na stronie Przepływ danych projektanta i reprezentuje źródło, transformację lub miejsce docelowe w zadaniu Przepływ danych. |
| Purpose | Zadanie skryptowe może wykonać niemal każde ogólne zadanie. | Musisz określić, czy chcesz utworzyć źródło, transformację czy miejsce docelowe za pomocą komponentu Script. |
| Execution | Zadanie skryptowe uruchamia niestandardowy kod w pewnym momencie przepływu pracy pakietu. Jeśli nie włożysz go do kontenera loop lub obsługi zdarzeń, uruchamia się tylko raz. | Komponent skryptowy również uruchamia się raz, ale zazwyczaj uruchamia swoją główną procedurę przetwarzania raz dla każdego wiersza danych w przepływie danych. |
| Editor | Edytor zadań skryptowych składa się z trzech stron: ogólnych, skryptowych i wyrażeń. Tylko właściwości ReadOnlyVariables , ReadWriteVariables i ScriptLanguage bezpośrednio wpływają na kod, który możesz napisać. | Edytor transformacji skryptów ma do czterech stron: kolumny wejściowe, wejścia i wyjścia, menedżery skryptów oraz połączeń. Metadane i właściwości, które konfigurujesz na każdej z tych stron, określają członków klas bazowych, które są automatycznie generowane do twojego użytku w programowaniu. |
| Interakcja z pakietem | W kodzie napisanym dla zadania skryptowego używasz właściwości DTS , aby uzyskać dostęp do innych funkcji pakietu. Własność DTS należy do klasy ScriptMain . | W kodzie komponentów skryptowych używasz typowanych właściwości accessorów, aby uzyskać dostęp do określonych funkcji pakietu, takich jak zmienne i menedżery połączeń. Metoda PreExecute umożliwia dostęp tylko do zmiennych tylko do odczytu. Metoda PostExecute umożliwia dostęp zarówno do zmiennych tylko do odczytu, jak i do odczytu/zapisu. Więcej informacji o tych metodach można znaleźć w artykule Kodowanie i debugowanie komponentu skryptowego. |
| Wykorzystanie zmiennych | Zadanie skryptowe wykorzystuje Variables właściwości obiektu DTS do dostępu do zmiennych dostępnych przez zadania ReadOnlyVariables i ReadWriteVariables właściwości. Przykład: [Visual Basic] Dim myVar as String myVar = Dts.Variables("MyStringVariable").Value.ToString[C#] string myVar; myVar = Dts.Variables["MyStringVariable"].Value.ToString(); |
Komponent Script wykorzystuje typowe właściwości accessorów automatycznie generowanej klasy opartej na przepisach, utworzonych na podstawie właściwości komponentu ReadOnlyVariables i ReadWriteVariables właściwości. Przykład: [Visual Basic] Dim myVar as String myVar = Me.Variables.MyStringVariable[C#] string myVar; myVar = this.Variables.MyStringVariable; |
| Wykorzystanie połączeń | Zadanie skryptowe wykorzystuje właściwość Connections obiektu DTS do dostępu do menedżerów połączeń zdefiniowanych w pakiecie. Przykład: [Visual Basic] Dim myFlatFileConnection As String myFlatFileConnection = _ DirectCast(Dts.Connections("Test Flat File Connection").AcquireConnection(Dts.Transaction), _ String)[C#] string myFlatFileConnection; myFlatFileConnection = (Dts.Connections["Test Flat File Connection"].AcquireConnection(Dts.Transaction) as String); |
Komponent Script wykorzystuje typowe właściwości accessorów automatycznie generowanej klasy bazowej, tworzone z listy menedżerów połączeń wpisanych przez użytkownika na stronie Menedżerów Połączeń w edytorze. Przykład: [Visual Basic] Dim connMgr As IDTSConnectionManager100 connMgr = Me.Connections.MyADONETConnection[C#] IDTSConnectionManager100 connMgr; connMgr = this.Connections.MyADONETConnection; |
| Wywoływanie zdarzeń | Zadanie Script wykorzystuje Events właściwość obiektu DTS do wywoływania zdarzeń. Przykład: [Visual Basic] Dts.Events.FireError(0, "Event Snippet", _ ex.Message & ControlChars.CrLf & ex.StackTrace, _ "", 0)[C#] Dts.Events.FireError(0, "Event Snippet", ex.Message + "\r" + ex.StackTrace, "", 0); |
Komponent skryptowy generuje błędy, ostrzeżenia i komunikaty informacyjne, wykorzystując metody interfejsu IDTSComponentMetaData100 zwracane przez tę ComponentMetaData właściwość. Przykład: [Visual Basic] Dim myMetadata as IDTSComponentMetaData100 myMetaData = Me.ComponentMetaData myMetaData.FireError(...) |
| Logging | Zadanie skryptowe wykorzystuje metodę Log obiektu DTS do logowania informacji do włączonych dostawców logów. Przykład: [Visual Basic] Dim bt(0) As Byte Dts.Log("Test Log Event", _ 0, _ bt)[C#] byte[] bt = new byte[0]; Dts.Log("Test Log Event", 0, bt); |
Komponent Script wykorzystuje metodę Log automatycznie generowanej klasy bazowej do logowania informacji do włączonych dostawców logów. Przykład: [Visual Basic] Dim bt(0) As ByteMe.Log("Test Log Event", _0, _bt)[C#] byte[] bt = new byte[0]; this.Log("Test Log Event", 0, bt); |
| Zwracanie wyników | Zadanie skryptowe wykorzystuje zarówno TaskResult właściwość, jak i opcjonalną ExecutionValue właściwość obiektu DTS , aby powiadomić czas wykonywania o swoich wynikach. | Komponent Script działa jako część zadania Przepływ danych i nie raportuje wyników korzystając z żadnej z tych właściwości. |