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