Confronto tra l'attività Script e il componente scriptComparing the Script Task and the Script Component

L'attività Script, disponibile nella finestra del flusso di controllo del Integration ServicesIntegration Services finestra di progettazione e il componente Script, disponibile nella finestra del flusso di dati, hanno scopi molto diversi in un Integration ServicesIntegration Services pacchetto.The Script task, available in the Control Flow window of the Integration ServicesIntegration Services designer, and the Script component, available in the Data Flow window, have very different purposes in an Integration ServicesIntegration Services package. L'attività è uno strumento generico del flusso di controllo, mentre il componente funge da origine, trasformazione o destinazione nel flusso di dati.The task is a general-purpose control flow tool, whereas the component serves as a source, transformation, or destination in the data flow. Nonostante gli scopi diversi, tuttavia, l'attività Script e il componente script presentano analogie negli strumenti di creazione di codice che utilizzano e negli oggetti del pacchetto che rendono disponibili per lo sviluppatore.Despite their different purposes, however, the Script task and the Script component have some similarities in the coding tools that they use and the objects in the package that they make available to the developer. Identificando le analogie e le differenze, sarà possibile utilizzare l'attività e il componente in modo più efficace.Understanding their similarities and differences may help you to use both the task and the component more effectively.

Analogie tra l'attività Script e il componente scriptSimilarities between the Script Task and the Script Component

L'attività Script e il componente Script condividono le caratteristiche comuni seguenti.The Script task and the Script component share the following common features.

FunzionalitàFeature DescriptionDescription
Due modalità della fase di progettazioneTwo design-time modes Nell'attività e nel componente si inizia specificando proprietà nell'editor e quindi si passa all'ambiente di sviluppo per scrivere codice.In both the task and the component, you begin by specifying properties in the editor, and then switch to the development environment to write code.
MicrosoftMicrosoft Visual StudioVisual Studio Tools for Applications (VSTA) Visual StudioVisual Studio Tools for Applications (VSTA) L'attività e il componente utilizzano entrambi lo stesso IDE di VSTA e supportano codice scritto in MicrosoftMicrosoft Visual Basic o MicrosoftMicrosoft Visual C#.Both the task and the component use the same VSTA IDE, and support code written in either MicrosoftMicrosoft Visual Basic or MicrosoftMicrosoft Visual C#.
Script precompilatiPrecompiled scripts A partire da SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS) tutti gli script sono precompilati.Beginning in SQL Server 2008 Integration Services (SSIS)SQL Server 2008 Integration Services (SSIS), all scripts are precompiled. Nelle versioni precedenti è possibile specificare se gli script sono precompilati.In earlier versions, you could specify whether scripts were precompiled.

Lo script è precompilato in codice binario, permettendo un'esecuzione più veloce, ma a discapito dell'aumento delle dimensioni dei pacchetti.The script is precompiled into binary code, permitting faster execution, but at the cost of increased package size.
debugDebugging L'attività e il componente supportano entrambi i punti di interruzione e l'esecuzione di codice istruzione per istruzione durante il debug in un ambiente di progettazione.Both the task and the component support breakpoints and stepping through code while debugging in the design environment. Per ulteriori informazioni, vedere la codifica e debug dell'attività Script e la codifica e debug del componente Script.For more information, see Coding and Debugging the Script Task and Coding and Debugging the Script Component.

Differenze tra l'attività Script e il componente scriptDifferences between the Script Task and the Script Component

L'attività Script e il componente script presentano le seguenti differenze di rilievo.The Script task and the Script component have the following noteworthy differences.

FunzionalitàFeature Attività ScriptScript Task Componente scriptScript Component
Flusso di controllo/flusso di datiControl flow / Data flow L'attività Script viene configurata nella scheda Flusso di controllo della finestra di progettazione e viene eseguita all'esterno del flusso di dati del pacchetto.The Script task is configured on the Control Flow tab of the designer and runs outside the data flow of the package. Il componente script viene configurato nella pagina Flusso di dati della finestra di progettazione e rappresenta un'origine, una trasformazione o una destinazione nell'attività Flusso di dati.The Script component is configured on the Data Flow page of the designer and represents a source, transformation, or destination in the Data Flow task.
ScopoPurpose Un'attività Script è in grado di completare qualsiasi attività generica.A Script task can accomplish almost any general-purpose task. È necessario specificare se si desidera creare un'origine, una trasformazione o una destinazione con il componente script.You must specify whether you want to create a source, transformation, or destination with the Script component.
EsecuzioneExecution Un'attività Script esegue codice personalizzato in un punto del flusso di lavoro del pacchetto.A Script task runs custom code at some point in the package workflow. Se non viene inserita in un contenitore Ciclo o in un gestore eventi, viene eseguita una sola volta.Unless you put it in a loop container or an event handler, it only runs once. Anche un componente script viene eseguito una sola volta, ma in genere esegue la propria routine di elaborazione principale una volta per ogni riga di dati del flusso di dati.A Script component also runs once, but typically it runs its main processing routine once for each row of data in the data flow.
EditorEditor Il Editor attività Script ha tre pagine: generale, Script, e espressioni.The Script Task Editor has three pages: General, Script, and Expressions. Solo il ReadOnlyVariables e ReadWriteVariables, e ScriptLanguage proprietà influiscono direttamente sul codice che è possibile scrivere.Only the ReadOnlyVariables and ReadWriteVariables, and ScriptLanguage properties directly affect the code that you can write. Il Editor trasformazione Script contiene fino a quattro pagine: colonne di Input, input e output, Script, e gestioni connessioni.The Script Transformation Editor has up to four pages: Input Columns, Inputs and Outputs, Script, and Connection Managers. I metadati e le proprietà che si configurano in ognuna di queste pagine determinano i membri delle classi di base generate automaticamente che è possibile utilizzare nel codice.The metadata and properties that you configure on each of these pages determines the members of the base classes that are autogenerated for your use in coding.
Interazione con il pacchettoInteraction with the package Nel codice scritto per un'attività Script, utilizzare il Dts proprietà per accedere ad altre funzionalità del pacchetto.In the code written for a Script task, you use the Dts property to access other features of the package. Il Dts proprietà è un membro del la classe ScriptMain classe.The Dts property is a member of the ScriptMain class. Nel codice del componente script si utilizzano le proprietà delle funzioni di accesso tipizzate per accedere a determinate caratteristiche del pacchetto, ad esempio variabili e gestioni connessioni.In Script component code, you use typed accessor properties to access certain package features such as variables and connection managers.

Il PreExecute metodo può accedere solo alle variabili di sola lettura.The PreExecute method can access only read-only variables. Il PostExecute metodo può accedere sia di sola lettura e le variabili di lettura/scrittura.The PostExecute method can access both read-only and read/write variables.

Per ulteriori informazioni su questi metodi, vedere la codifica e debug del componente Script.For more information about these methods, see Coding and Debugging the Script Component.
Utilizzo di variabiliUsing variables L'attività Script utilizza il Variables proprietà del Dts oggetto per accedere a variabili che sono disponibili tramite l'attività ReadOnlyVariables e ReadWriteVariables proprietà.The Script task uses the Variables property of the Dts object to access variables that are available through the task’s ReadOnlyVariables and ReadWriteVariables properties. Esempio:For example:

[Visual Basic][Visual Basic]

Dim myVar as String
myVar = Dts.Variables(“MyStringVariable”).Value.ToString

[C#][C#]

string myVar;
myVar = Dts.Variables["MyStringVariable"].Value.ToString();
Il componente script utilizza le proprietà delle funzioni di accesso tipizzate della classe di base generata automaticamente, create dalle proprietà ReadOnlyVariables e ReadWriteVariables del componente.The Script component uses typed accessor properties of the autogenerated based class, created from the component’s ReadOnlyVariables and ReadWriteVariables properties. Esempio:For example:

[Visual Basic][Visual Basic]

Dim myVar as String
myVar = Me.Variables.MyStringVariable

[C#][C#]

string myVar;
myVar = this.Variables.MyStringVariable;
Utilizzo delle connessioniUsing connections L'attività Script utilizza il Connections proprietà del Dts oggetto per accedere alle gestioni connessioni definite nel pacchetto.The Script task uses the Connections property of the Dts object to access connection managers defined in the package. Esempio:For example:

[Visual Basic][Visual Basic]

Dim myFlatFileConnection As String
myFlatFileConnection = _ DirectCast(Dts.Connections("Test Flat File Connection").AcquireConnection(Dts.Transaction), _ String)

[C#][C#]

string myFlatFileConnection;
myFlatFileConnection = (Dts.Connections["Test Flat File Connection"].AcquireConnection(Dts.Transaction) as String);
Il componente script utilizza le proprietà delle funzioni di accesso tipizzate della classe di base generata automaticamente, create dall'elenco di gestioni connessioni immesso dall'utente nella pagina corrispondente dell'editor.The Script component uses typed accessor properties of the autogenerated base class, created from the list of connection managers entered by the user on the Connection Managers page of the editor. Esempio:For example:

[Visual Basic][Visual Basic]

Dim connMgr As IDTSConnectionManager100
connMgr = Me.Connections.MyADONETConnection

[C#][C#]

IDTSConnectionManager100 connMgr;
connMgr = this.Connections.MyADONETConnection;
Generazione di eventiRaising events L'attività Script utilizza il Events proprietà del Dts oggetto per la generazione di eventi.The Script task uses the Events property of the Dts object to raise events. Esempio:For example:

[Visual Basic][Visual Basic]

Dts.Events.FireError(0, "Event Snippet", _ ex.Message & ControlChars.CrLf & ex.StackTrace, _ "", 0)

[C#][C#]

Dts.Events.FireError(0, "Event Snippet", ex.Message + "\r" + ex.StackTrace, "", 0);
Il componente script genera errori, avvisi e messaggi informativi utilizzando i metodi dell'interfaccia IDTSComponentMetaData100 restituita dalla proprietà ComponentMetaData.The Script component raises errors, warnings, and informational messages by using the methods of the IDTSComponentMetaData100 interface returned by the ComponentMetaData property. Esempio:For example:

[Visual Basic][Visual Basic]

Dim myMetadata as IDTSComponentMetaData100 myMetaData = Me.ComponentMetaData myMetaData.FireError(...)
RegistrazioneLogging L'attività Script utilizza il Log metodo il Dts oggetto per registrare informazioni nei provider di log abilitati.The Script task uses the Log method of the Dts object to log information to enabled log providers. Esempio:For example:

[Visual Basic][Visual Basic]

Dim bt(0) As Byte Dts.Log("Test Log Event", _ 0, _ bt)

[C#][C#]

byte[] bt = new byte[0];
Dts.Log("Test Log Event", 0, bt);
Il componente script utilizza il metodo Log della classe di base generata automaticamente per registrare informazioni nei provider di log abilitati.The Script component uses the Log method of the autogenerated base class to log information to enabled log providers. Esempio:For example:

[Visual Basic][Visual Basic]

Dim bt(0) As Byte

Me.Log("Test Log Event", _

0, _

bt)

[C#][C#]

byte[] bt = new byte[0]; this.Log("Test Log Event", 0, bt);
Restituzione di risultatiReturning results L'attività Script utilizza sia il TaskResult proprietà e il parametro facoltativo ExecutionValue proprietà del Dts oggetto notificare al runtime di risultati.The Script task uses both the TaskResult property and the optional ExecutionValue property of the Dts object to notify the runtime of its results. Il componente script viene eseguito come parte dell'attività Flusso di dati e non restituisce risultati utilizzando queste proprietà.The Script component runs as a part of the Data Flow task and does not report results using either of these properties.

Vedere ancheSee Also

Estensione del pacchetto con l'attività Script Extending the Package with the Script Task
Estensione del flusso di dati con il componente ScriptExtending the Data Flow with the Script Component