Confronto tra l'attività Script e il componente script

Si applica a: SQL Server SSIS Integration Runtime in Azure Data Factory

L'attività Script, disponibile nella finestra Flusso di controllo 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 generico del flusso di controllo, mentre il componente funge da origine, trasformazione o destinazione nel flusso di dati. 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. Identificando le analogie e le differenze, sarà possibile utilizzare l'attività e il componente in modo più efficace.

Analogie tra l'attività Script e il componente script

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

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

Lo script è precompilato in codice binario, permettendo un'esecuzione più veloce, ma a discapito dell'aumento delle dimensioni dei pacchetti.
Debug 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. Per altre informazioni, vedere Scrittura di codice e debug dell'attività Script e Codifica e debug del componente Script.

Differenze tra l'attività Script e il componente script

L'attività Script e il componente script presentano le seguenti differenze di rilievo.

Funzionalità Attività 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 è in grado di completare qualsiasi attività generica. È necessario specificare se si desidera creare un'origine, una trasformazione o una destinazione con il componente script.
Esecuzione Un'attività Script esegue codice personalizzato in un punto del flusso di lavoro del pacchetto. Se non viene inserita in un contenitore Ciclo o in un gestore eventi, viene eseguita una sola volta. 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.
Editor Editor attività Script include tre pagine: Generale, Script e Espressioni. Solo le proprietà ReadOnlyVariables, ReadWriteVariables e ScriptLanguage influiscono direttamente sul codice che è possibile scrivere. Editor trasformazione Script può includere fino a quattro pagine: Colonne di input, Input e output, Script e Gestioni connessioni. 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.
Interazione con il pacchetto Nel codice scritto per un'attività Script si usa la proprietà Dts per accedere ad altre funzionalità del pacchetto. La proprietà Dts è un membro della classe ScriptMain. 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.

Il metodo PreExecute può accedere unicamente a variabili di sola lettura. Il metodo PostExecute può accedere sia a variabili di sola lettura sia a variabili di lettura/scrittura.

Per ulteriori informazioni su questi metodi, vedere Codifica e debug del componente script.
Uso delle variabili L'attività Script usa la proprietà Variables dell'oggetto Dts per accedere a variabili disponibili tramite le proprietà ReadOnlyVariables e ReadWriteVariables dell'attività. Ad esempio:

[Visual Basic]

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

[C#]

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

[Visual Basic]

Dim myVar as String
myVar = Me.Variables.MyStringVariable

[C#]

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

[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);
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. Ad esempio:

[Visual Basic]

Dim connMgr As IDTSConnectionManager100
connMgr = Me.Connections.MyADONETConnection

[C#]

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

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

[Visual Basic]

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

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

[Visual Basic]

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 di risultati L'attività Script usa sia la proprietà TaskResult che la proprietà facoltativa ExecutionValue dell'oggetto Dts per notificare i risultati al runtime. Il componente script viene eseguito come parte dell'attività Flusso di dati e non restituisce risultati utilizzando queste proprietà.

Vedi anche

Estensione del pacchetto con l'attività Script
Estensione del flusso di dati con il componente script