Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die Skriptaufgabe, die im Fenster "Steuerungsfluss" des Integration Services-Designers verfügbar ist, und die Skriptkomponente, die im Datenflussfenster verfügbar ist, haben sehr unterschiedliche Zwecke in einem Integration Services-Paket. Die Aufgabe ist ein allgemeines Steuerungsflusstool, während die Komponente als Quelle, Transformation oder Ziel im Datenfluss dient. Trotz ihrer unterschiedlichen Zwecke weisen die Skriptaufgabe und die Skriptkomponente einige Ähnlichkeiten in den Codierungstools auf, die sie verwenden, und die Objekte im Paket, die sie dem Entwickler zur Verfügung stellen. Das Verständnis ihrer Ähnlichkeiten und Unterschiede kann Ihnen dabei helfen, sowohl die Aufgabe als auch die Komponente effektiver zu verwenden.
Ähnlichkeiten zwischen der Skriptaufgabe und der Skriptkomponente
Die Skriptaufgabe und die Skriptkomponente teilen die folgenden allgemeinen Features.
| Merkmal | BESCHREIBUNG |
|---|---|
| Zwei Entwurfszeitmodi | Sowohl in der Aufgabe als auch in der Komponente geben Sie zunächst Eigenschaften im Editor an und wechseln dann zur Entwicklungsumgebung, um Code zu schreiben. |
| Microsoft Visual Studio Tools for Applications (VSTA) | Sowohl die Aufgabe als auch die Komponente verwenden dieselbe VSTA-IDE und unterstützen Code, der entweder in Microsoft Visual Basic oder Microsoft Visual C# geschrieben wurde. |
| Vorkompilierte Skripts | Ab SQL Server 2008 Integration Services (SSIS) werden alle Skripts vorkompiliert. In früheren Versionen konnten Sie angeben, ob Skripts vorkompiliert wurden. Das Skript wird in binären Code vorkompiliert, was eine schnellere Ausführung ermöglicht, aber zu kosten einer erhöhten Paketgröße. |
| Fehlersuche | Sowohl die Aufgabe als auch die Komponente unterstützen Haltepunkte und schrittweises Durchlaufen von Code beim Debuggen in der Entwurfsumgebung. Weitere Informationen finden Sie unter Codieren und Debuggen der Skriptaufgabe und [Codieren und Debuggen der Skriptkomponente](.). /extending-packages-scripting/data-flow-script-component/coding-and-debugging-the-script-component.md. |
Unterschiede zwischen der Skriptaufgabe und der Skriptkomponente
Die Skriptaufgabe und die Skriptkomponente weisen die folgenden bemerkenswerten Unterschiede auf.
| Merkmal | Skripttask | Skriptkomponente |
|---|---|---|
| Steuerungsfluss/Datenfluss | Die Skriptaufgabe ist auf der Registerkarte "Steuerungsfluss" des Designers konfiguriert und wird außerhalb des Datenflusses des Pakets ausgeführt. | Die Skriptkomponente ist auf der Datenflussseite des Designers konfiguriert und stellt eine Quelle, Transformation oder ein Ziel in der Datenflussaufgabe dar. |
| Zweck | Eine Skriptaufgabe kann fast jede allgemeine Aufgabe ausführen. | Sie müssen angeben, ob Sie eine Quelle, Transformation oder ein Ziel mit der Skriptkomponente erstellen möchten. |
| Ausführung | Eine Skriptaufgabe führt irgendwann im Paketworkflow benutzerdefinierten Code aus. Sofern Sie ihn nicht in einen Schleifencontainer oder einen Ereignishandler einfügen, wird er nur einmal ausgeführt. | Eine Skriptkomponente wird auch einmal ausgeführt, aber in der Regel wird die Hauptverarbeitungsroutine für jede Datenzeile im Datenfluss einmal ausgeführt. |
| Redakteur | Der Skriptaufgaben-Editor verfügt über drei Seiten: "Allgemein", "Skript" und "Ausdrücke". Nur die ReadOnlyVariables Eigenschaften und ReadWriteVariablesSkriptLanguage wirken sich direkt auf den Code aus, den Sie schreiben können. |
Der Skripttransformations-Editor verfügt über bis zu vier Seiten: Eingabespalten, Eingaben und Ausgaben, Skripts und Verbindungsmanager. Die Metadaten und Eigenschaften, die Sie auf jeder dieser Seiten konfigurieren, bestimmen die Member der Basisklassen, die automatisch generiert werden, um sie bei der Codierung zu verwenden. |
| Interaktion mit dem Paket | Im Code, der für eine Skriptaufgabe geschrieben wurde, verwenden Sie die Dts Eigenschaft, um auf andere Features des Pakets zuzugreifen. Die Dts Eigenschaft ist ein Element der ScriptMain Klasse. |
Im Skriptkomponentencode verwenden Sie typierte Accessoreigenschaften, um auf bestimmte Paketfeatures wie Variablen und Verbindungsmanager zuzugreifen. 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](.). /extending-packages-scripting/data-flow-script-component/coding-and-debugging-the-script-component.md. |
| Variablen verwenden | Die Skriptaufgabe verwendet die Variables Eigenschaft des Dts Objekts, um auf Variablen zuzugreifen, die über die ReadOnlyVariables Aufgaben und ReadWriteVariables Eigenschaften verfügbar sind. Beispiel:[VB] Dim myVar as String myVar = Dts.Variables("MyStringVariable").Value.ToString[C#] string myVar; myVar = Dts.Variables["MyStringVariable"].Value.ToString(); |
Die Skriptkomponente verwendet typierte Accessoreigenschaften der automatisch generierten basierten Klasse, die aus den Komponenten ReadOnlyVariables und ReadWriteVariables Eigenschaften erstellt wurde. Beispiel: [VB] Dim myVar as String myVar = Me.Variables.MyStringVariable[C#] string myVar; myVar = this.Variables.MyStringVariable; |
| Verwenden von Verbindungen | Die Skriptaufgabe verwendet die Connections Eigenschaft des Dts Objekts für den Zugriff auf Verbindungsmanager, die im Paket definiert sind. Beispiel:[VB] 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); |
Die Skriptkomponente verwendet typierte Accessoreigenschaften der automatisch generierten Basisklasse, die aus der Liste der Verbindungsmanager erstellt wurde, die vom Benutzer auf der Seite "Verbindungsmanager" des Editors eingegeben wurden. Beispiel: [VB] Dim connMgr As IDTSConnectionManager100 connMgr = Me.Connections.MyADONETConnection[C#] IDTSConnectionManager100 connMgr; connMgr = this.Connections.MyADONETConnection; |
| Auslösen von Ereignissen | Die Skriptaufgabe verwendet die Events Eigenschaft des Dts Objekts zum Auslösen von Ereignissen. Beispiel:[VB] 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); |
Die Skriptkomponente löst Fehler, Warnungen und Informationsmeldungen mithilfe der Von der ComponentMetaData Eigenschaft zurückgegebenen Methoden der IDTSComponentMetaData100 Schnittstelle aus. Beispiel: [VB] Dim myMetadata as IDTSComponentMetaData100 myMetaData = Me.ComponentMetaData myMetaData.FireError(...) |
| Protokollierung | Die Skriptaufgabe verwendet die Log Methode des Dts Objekts, um Informationen zu aktivierten Protokollanbietern zu protokollieren. Beispiel:[VB] 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); |
Die Skriptkomponente verwendet die Log Methode der automatisch generierten Basisklasse, um Informationen zu aktivierten Protokollanbietern zu protokollieren. Beispiel: [VB] Dim bt(0) As ByteMe.Log("Test Log Event", _0, _bt)[C#] byte[] bt = new byte[0]; this.Log("Test Log Event", 0, bt); |
| Ergebnisse zurückgeben | Die Skriptaufgabe verwendet sowohl die TaskResult Eigenschaft als auch die optionale ExecutionValue Eigenschaft des Dts Objekts, um die Laufzeit der Ergebnisse zu benachrichtigen. |
Die Skriptkomponente wird als Teil der Datenflussaufgabe ausgeführt und meldet keine Ergebnisse mithilfe dieser Eigenschaften. |
Siehe auch
Erweitern von Paketen mithilfe des Skripttasks
Erweitern des Datenflusses mit der Skriptkomponente
Verwenden einer Skriptaufgabe in SQL Server Integration Services SSIS zum Herstellen einer Verbindung mit einem Webdienst