Condividi tramite


Confronto tra l'Attività Script e il Componente Script

L'attività Script, disponibile nella finestra Flusso di controllo della finestra di progettazione di Integration Services e il componente Script, disponibile nella finestra Flusso di dati, hanno scopi molto diversi in un pacchetto di Integration Services. L'attività è uno strumento di flusso di controllo generico, mentre il componente funge da origine, trasformazione o destinazione nel flusso di dati. Nonostante i diversi scopi, tuttavia, l'attività Script e il componente Script presentano alcune analogie negli strumenti di codifica usati e negli oggetti nel pacchetto che rendono disponibili per lo sviluppatore. Comprendere le analogie e le differenze può essere utile per usare sia l'attività che il componente in modo più efficace.

Analogie tra l'attività Script e il componente script

L'attività Script e il componente Script condividono le funzionalità comuni seguenti.

Caratteristica / Funzionalità Descrizione
Due modalità di progettazione Sia nell'attività che nel componente, si inizia specificando le proprietà nell'editor e quindi si passa all'ambiente di sviluppo per scrivere codice.
Microsoft Visual Studio Tools for Applications (VSTA) Sia l'attività che il componente usano lo stesso IDE VSTA e supportano il codice scritto in Microsoft Visual Basic o Microsoft Visual C#.
Script precompilati A partire da SQL Server 2008 Integration Services (SSIS), tutti gli script sono precompilati. Nelle versioni precedenti è possibile specificare se gli script sono stati precompilati.

Lo script viene precompilato nel codice binario, consentendo un'esecuzione più rapida, ma a costi di dimensioni maggiori del pacchetto.
Risoluzione dei problemi Sia l'attività che il componente supportano i punti di interruzione e l'esecuzione di istruzioni nel codice durante il debug nell'ambiente di progettazione. Per altre informazioni, vedere Codifica e debug dell'attività Script e [Codifica e debug del componente script](.. /extending-packages-scripting/data-flow-script-component/coding-and-debugging-the-script-component.md.

Differenze tra l'attività Script e il componente script

L'attività Script e il componente Script presentano le differenze importanti seguenti.

Caratteristica / Funzionalità Compito Script Componente script
Flusso di controllo/Flusso di dati 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. 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.
Scopo Un'attività Script può eseguire quasi tutte le attività per utilizzo generico. È necessario specificare se si vuole creare un'origine, una trasformazione o una destinazione con il componente Script.
Esecuzione Un'attività Script esegue codice personalizzato a un certo punto nel flusso di lavoro del pacchetto. A meno che non venga inserito in un contenitore di cicli o in un gestore eventi, viene eseguito una sola volta. Un componente script viene eseguito anche una sola volta, ma in genere esegue la routine di elaborazione principale una volta per ogni riga di dati nel flusso di dati.
Redattore L'Editor attività Script include tre pagine: Generale, Script ed Espressioni. Solo le ReadOnlyVariables proprietà e ReadWriteVariablese ScriptLanguage influiscono direttamente sul codice che è possibile scrivere. L'Editor trasformazione Script include fino a quattro pagine: colonne di input, input e output, script e gestioni connessioni. I metadati e le proprietà configurati in ognuna di queste pagine determinano i membri delle classi di base generate automaticamente per l'uso nella codifica.
Interazione con il pacchetto Nel codice scritto per un'attività Script si usa la Dts proprietà per accedere ad altre funzionalità del pacchetto. La Dts proprietà è un membro della ScriptMain classe . Nel codice del componente script si usano le proprietà della funzione di accesso tipizzate per accedere a determinate funzionalità del pacchetto, ad esempio variabili e gestioni connessioni.

Il PreExecute metodo può accedere solo alle variabili di sola lettura. Il PostExecute metodo può accedere alle variabili di sola lettura e di lettura/scrittura.

Per altre informazioni su questi metodi, vedere [Codifica e debug del componente script](.. /extending-packages-scripting/data-flow-script-component/coding-and-debugging-the-script-component.md.
Uso delle variabili L'attività Script usa la Variables proprietà dell'oggetto Dts per accedere alle variabili disponibili tramite le proprietà e ReadWriteVariables dell'attivitàReadOnlyVariables. Per esempio:

[VB]

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



[C#]

string myVar; myVar = Dts.Variables["MyStringVariable"].Value.ToString();
Il componente Script usa proprietà della funzione di accesso tipizzate della classe basata su generata automaticamente, create dalle proprietà e ReadWriteVariables del ReadOnlyVariables componente. Per esempio:

[VB]

Dim myVar as String myVar = Me.Variables.MyStringVariable



[C#]

string myVar; myVar = this.Variables.MyStringVariable;
Uso delle connessioni L'attività Script usa la Connections proprietà dell'oggetto Dts per accedere alle gestioni connessioni definite nel pacchetto. Per esempio:

[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);
Il componente Script usa proprietà della funzione di accesso tipizzate della classe base generata automaticamente, create dall'elenco delle gestioni connessioni immesse dall'utente nella pagina Gestioni connessioni dell'editor. Per esempio:

[VB]

Dim connMgr As IDTSConnectionManager100 connMgr = Me.Connections.MyADONETConnection



[C#]

IDTSConnectionManager100 connMgr; connMgr = this.Connections.MyADONETConnection;
Attivazione di eventi L'attività Script usa la Events proprietà dell'oggetto Dts per generare eventi. Per esempio:

[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);
Il componente Script genera errori, avvisi e messaggi informativi usando i metodi dell'interfaccia IDTSComponentMetaData100 restituita dalla ComponentMetaData proprietà . Per esempio:

[VB]

Dim myMetadata as IDTSComponentMetaData100 myMetaData = Me.ComponentMetaData myMetaData.FireError(...)
Registrazione L'attività Script usa il Log metodo dell'oggetto Dts per registrare le informazioni per abilitare i provider di log. Per esempio:

[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);
Il componente Script usa il Log metodo della classe di base generata automaticamente per registrare le informazioni nei provider di log abilitati. Per esempio:

[VB]

Dim bt(0) As Byte

Me.Log("Test Log Event", _

0, _

bt)



[C#]

byte[] bt = new byte[0]; this.Log("Test Log Event", 0, bt);
Restituzione dei risultati L'attività Script usa sia la TaskResult proprietà che la proprietà facoltativa ExecutionValue dell'oggetto Dts per notificare al runtime i risultati. Il componente Script viene eseguito come parte dell'attività Flusso di dati e non segnala i risultati usando una di queste proprietà.

Vedere anche

Estensione del pacchetto con l'attività Script
Estensione del flusso di dati con il componente script
Uso di un'attività Script in SQL Server Integration Services SSIS per connettersi a un servizio Web