Vergleich zwischen Skripttask und Skriptkomponente
Der Skripttask, der im Fenster Ablaufsteuerung des Integration Services-Designers zur Verfügung steht, und die Skriptkomponente im Fenster Datenfluss dienen in einem Integration Services-Paket völlig unterschiedlichen Zwecken. Der Task stellt ein allgemeines Ablaufsteuerungstool dar, während die Komponente als Quelle, Transformation oder Ziel im Datenfluss dient. Trotz ihres unterschiedlichen Zwecks verfügen der Skripttask und die Skriptkomponente jedoch über Gemeinsamkeiten hinsichtlich der verwendeten Codierungstools sowie der Objekte im Paket, die sie dem Entwickler bereitstellen. Die Unterschiede und Gemeinsamkeiten zu kennen, kann Ihnen dabei helfen, Task und Komponente effektiver einzusetzen.
Gemeinsamkeiten zwischen Skripttask und Skriptkomponente
Skripttask und Skriptkomponente verfügen über folgende gemeinsame Features:
Feature |
Beschreibung |
---|---|
Zwei Entwurfszeitmodi |
Bei Task und Komponente legen Sie zunächst im Editor Eigenschaften fest und wechseln anschließend in die Entwicklungsumgebung, um Code zu schreiben. |
MicrosoftVisual Studio Tools for Applications (VSTA) |
Task und Komponente verwenden dieselbe VSTA IDE und unterstützen in MicrosoftVisual Basic 2008 oder MicrosoftVisual C# 2008 geschriebenen Code. |
Vorkompilierte Skripts |
In SQL Server 2008 Integration Services (SSIS) werden alle Skripts vorkompiliert. In früheren Versionen konnten Sie festlegen, ob Skripts vorkompiliert werden sollten. Das Skript wird in binärem Code vorkompiliert. Dies ermöglicht eine schnellere Ausführung, vergrößert jedoch das Paket. |
Unterschiede zwischen Skripttask und Skriptkomponente
Skripttask und Skriptkomponente weisen folgende wichtige Unterschiede auf:
Feature |
Skripttask |
Skriptkomponente |
---|---|---|
Ablaufsteuerung/Datenfluss |
Der Skripttask wird auf der Registerkarte Ablaufsteuerung des Designers konfiguriert und außerhalb des Paketdatenflusses ausgeführt. |
Die Skriptkomponente wird auf der Seite Datenfluss des Designers konfiguriert und stellt eine Quelle, Transformation oder ein Ziel im Datenflusstask dar. |
Zweck |
Ein Skripttask kann fast jede allgemeine Aufgabe ausführen. |
Sie müssen festlegen, ob Sie mit der Skriptkomponente eine Quelle, Transformation oder ein Ziel erstellen möchten. |
Ausführung |
Ein Skripttask führt benutzerdefinierten Code an einem bestimmten Punkt im Paketworkflow aus. Er wird nur einmal ausgeführt, sofern Sie ihn nicht in einem Schleifencontainer oder Ereignishandler platzieren. |
Auch eine Skriptkomponente wird einmal ausgeführt. Sie führt aber ihre Verarbeitungsroutine meist für jede Datenzeile im Datenfluss aus. |
Editor |
Der Skripttask-Editor weist drei Seiten auf: Allgemein, Skript und Ausdrücke. Nur die ReadOnlyVariables-, ReadWriteVariables- und ScriptLanguage-Eigenschaften wirken sich direkt auf den von Ihnen geschriebenen Code aus. |
Der Transformations-Editor für Skripterstellung verfügt über maximal vier Seiten: Eingabespalten, Eingaben und Ausgaben, Skript sowie Verbindungs-Manager. Die Metadaten und Eigenschaften, die Sie auf diesen Seiten konfigurieren, legen die Member der Basisklassen fest, die für Sie bei der Codierung automatisch generiert werden. |
Interaktion mit dem Paket |
Im Code für ein Skripttask verwenden Sie die Dts-Eigenschaft, um auf andere Features des Pakets zuzugreifen. Die Dts-Eigenschaft ist ein Member der ScriptMain-Klasse. |
Im Skriptkomponentencode verwenden Sie typisierte Accessoreigenschaften für den Zugriff auf bestimmte Paketfeatures wie Variablen und Verbindungs-Manager. Die PreExecute-Methode kann nur auf schreibgeschützte Variablen zugreifen. Die PostExecute-Methode kann sowohl auf schreibgeschützte als auch auf Lese-/Schreibvariablen zugreifen. Weitere Informationen zu diesen Methoden finden Sie unter Codieren und Debuggen der Skriptkomponente. |
Verwenden von Variablen |
Der Skripttask verwendet die Variables-Eigenschaft des Dts-Objekts, um auf Variablen zuzugreifen, die über die ReadOnlyVariables- und ReadWriteVariables-Eigenschaften des Tasks bereitgestellt werden. Beispiel: |
Die Skriptkomponente verwendet typisierte Accessoreigenschaften der automatisch generierten Basisklasse, die aus den ReadOnlyVariables- und ReadWriteVariables-Eigenschaften der Komponente erstellt werden. Beispiel: |
Verwenden von Verbindungen |
Der Skripttask nutzt die Connections-Eigenschaft des Dts-Objekts, um auf im Paket definierte Verbindungs-Manager zuzugreifen. Beispiel: |
Die Skriptkomponente verwendet typisierte Accessoreigenschaften der automatisch generierten Basisklasse, die aus der Liste von Verbindungs-Managern erstellt werden, die vom Benutzer auf der Seite Verbindungs-Manager des Editors eingegeben wurden. Beispiel: |
Auslösen von Ereignissen |
Der Skripttask verwendet die Events-Eigenschaft des Dts-Objekts, um Ereignisse auszulösen. Beispiel: |
Die Skriptkomponente löst Fehler, Warnungen und Informationsmeldungen mithilfe der Methoden der IDTSComponentMetaData100-Schnittstelle, die von der ComponentMetaData-Eigenschaft zurückgegeben werden, aus. Beispiel: |
Protokollierung |
Der Skripttask verwendet die Log-Methode des Dts -Objekts, um Informationen bei aktivierten Protokollanbietern zu protokollieren. Beispiel: |
Die Skriptkomponente verwendet die Log-Methode der automatisch generierten Basisklasse, um Informationen bei aktivierten Protokollanbietern zu protokollieren. Beispiel: [Visual Basic] Dim bt(0) As Byte Me.Log("Test Log Event", _ 0, _ bt) |
Zurückgeben von Ergebnissen |
Der Skripttask verwendet die TaskResult-Eigenschaft sowie die optionale ExecutionValue-Eigenschaft des Dts -Objekts, um die Laufzeit über die Ergebnisse zu benachrichtigen. |
Die Skriptkomponente wird als Teil des Datenflusstasks ausgeführt und erstellt keine Ergebnisberichte mit einer dieser Eigenschaften. |
Debuggen |
Beim Debuggen in der Entwurfsumgebung unterstützt der Skripttask Haltepunkte und die schrittweise Ausführung von Code.
Hinweis
Wenn Sie ein Paket debuggen, das mehrere Skripttasks umfasst, erreicht der Debugger nur in einem Skripttask Haltepunkte und ignoriert die Haltepunkte in den anderen Skripttasks. Ist ein Skripttask Bestandteil einer Foreach-Schleife oder eines For-Schleifencontainers, dann ignoriert der Debugger nach der ersten Schleifeniteration Haltepunkte im Skripttask.
|
Die Skriptkomponente unterstützt das Debuggen nicht. Weitere Informationen finden Sie im Abschnitt zum Debuggen der Skriptkomponente unter Codieren und Debuggen der Skriptkomponente. |
|
Siehe auch