Confronto tra l'attività Script e il componente script
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.
Feature | 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 Visual Studio Tools 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 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 seguenti differenze di rilievo.
Feature | 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 ReadOnlyVariables proprietà e e ReadWriteVariables 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 utilizza la proprietà Dts per accedere ad altre caratteristiche 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 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. |
Utilizzo di variabili | L'attività Script usa la Variables proprietà dell'oggetto Dts per accedere alle variabili disponibili tramite le proprietà e ReadWriteVariables dell'attivitàReadOnlyVariables. Ad 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 le proprietà delle funzioni di accesso tipizzate della classe di base generata automaticamente, create dalle proprietà ReadOnlyVariables e ReadWriteVariables del componente. Ad esempio: [VB] Dim myVar as String myVar = Me.Variables.MyStringVariable [C#] string myVar; myVar = this.Variables.MyStringVariable; |
Utilizzo delle connessioni | L'attività Script utilizza la proprietà Connections dell'oggetto Dts per accedere alle gestioni connessioni definite nel pacchetto. Ad 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 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: [VB] Dim connMgr As IDTSConnectionManager100 connMgr = Me.Connections.MyADONETConnection [C#] IDTSConnectionManager100 connMgr; connMgr = this.Connections.MyADONETConnection; |
Generazione di eventi | L'attività Script utilizza la proprietà Events dell'oggetto Dts per generare eventi. Ad 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 utilizzando i metodi dell'interfaccia IDTSComponentMetaData100 restituita dalla proprietà ComponentMetaData. Ad 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 nei provider di log abilitati. Ad 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 utilizza il metodo Log della classe di base generata automaticamente per registrare informazioni nei provider di log abilitati. Ad 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 di 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 restituisce risultati utilizzando queste proprietà. |
Vedere anche
Estensione del pacchetto con l'attività Script
Estensione del flusso di dati con il componente script
Utilizzo di un'attività Script in SQL Server Integration Services SSIS per connettersi a un servizio Web