Utilizzo di variabili nel componente scriptUsing Variables in the Script Component

Nelle variabili vengono archiviati valori che possono essere utilizzati in fase di esecuzione da un pacchetto e dai relativi contenitori, attività e gestori eventi.Variables store values that a package and its containers, tasks, and event handlers can use at run time. Per altre informazioni, vedere Integration Services (SSIS) Variables.For more information, see Integration Services (SSIS) Variables.

È possibile rendere disponibili le variabili esistenti per l'accesso di sola lettura o di lettura/scrittura da parte dello script personalizzato immettendo elenchi di variabili delimitate da virgole nei campi ReadOnlyVariables e ReadWriteVariables della pagina Script dell'Editor trasformazione Script.You can make existing variables available for read-only or read/write access by your custom script by entering comma-delimited lists of variables in the ReadOnlyVariables and ReadWriteVariables fields on the Script page of the Script Transformation Editor. Tenere presente che per i nomi delle variabili viene applicata la distinzione tra maiuscole e minuscole.Keep in mind that variable names are case-sensitive. Usare la proprietà Value per leggere e scrivere in singole variabili.Use the Value property to read from and write to individual variables. Il componente script gestisce automaticamente l'eventuale blocco richiesto mentre lo script modifica le variabili in fase di esecuzione.The Script component handles any required locking behind the scenes as your script manipulates the variables at run time.

Importante

La raccolta di ReadWriteVariables è disponibile solo nel metodo PostExecute per ottimizzare le prestazioni e ridurre il rischio di conflitti di blocco.The collection of ReadWriteVariables is only available in the PostExecute method to maximize performance and minimize the risk of locking conflicts. Pertanto, non è possibile incrementare direttamente il valore di una variabile del pacchetto durante l'elaborazione di ogni riga di dati.Therefore you cannot directly increment the value of a package variable as you process each row of data. Incrementare invece il valore di una variabile locale e impostare il valore della variabile del pacchetto sul valore della variabile locale nel metodo PostExecute dopo che tutti i dati sono stati elaborati.Increment the value of a local variable instead, and set the value of the package variable to the value of the local variable in the PostExecute method after all data has been processed. È anche possibile utilizzare la proprietà VariableDispenser per ovviare a questa limitazione, come descritto più avanti in questo argomento.You can also use the VariableDispenser property to work around this limitation, as described later in this topic. Tuttavia, se si scrive direttamente in una variabile del pacchetto durante l'elaborazione di ogni riga, si verificano effetti negativi sulle prestazioni e aumenta il rischio di conflitti di blocco.However, writing directly to a package variable as each row is processed will negatively impact performance and increase the risk of locking conflicts.

Per altre informazioni sulla pagina Script dell'Editor trasformazione Script, vedere Configurazione del componente script nell'editor corrispondente ed Editor trasformazione Script (pagina Script).For more information about the Script page of the Script Transformation Editor, see Configuring the Script Component in the Script Component Editor and Script Transformation Editor (Script Page).

Il componente script crea una classe di raccolta Variables nell'elemento di progetto ComponentWrapper con una proprietà di funzione di accesso fortemente tipizzata per il valore di ogni variabile preconfigurata, in cui la proprietà ha lo stesso nome della variabile stessa.The Script component creates a Variables collection class in the ComponentWrapper project item with a strongly-typed accessor property for the value of each preconfigured variable where the property has the same name as the variable itself. La raccolta viene esposta tramite la proprietà Variables della classe ScriptMain.This collection is exposed through the Variables property of the ScriptMain class. La proprietà della funzione di accesso fornisce autorizzazioni di sola lettura o di lettura/scrittura al valore della variabile, a seconda dei casi.The accessor property provides read-only or read/write permission to the value of the variable as appropriate. Se ad esempio è stata aggiunta una variabile di tipo integer denominata MyIntegerVariable all'elenco ReadOnlyVariables, è possibile recuperarne il valore nello script tramite il codice seguente:For example, if you have added an integer variable named MyIntegerVariable to the ReadOnlyVariables list, you can retrieve its value in your script by using the following code:

Dim myIntegerVariableValue As Integer = Me.Variables.MyIntegerVariable

È anche possibile utilizzare la proprietà VariableDispenser, accessibile tramite una chiamata a Me.VariableDispenser, per utilizzare le variabili nel componente script.You can also use the VariableDispenser property, accessed by calling Me.VariableDispenser, to work with variables in the Script component. In questo caso, non si utilizzano le proprietà delle funzioni di accesso tipizzate e denominate per le variabili, ma si accede alle variabili direttamente.In this case you are not using the typed and named accessor properties for variables, but accessing the variables directly. Quando si utilizza VariableDispenser, è necessario gestire sia la semantica di blocco che il cast dei tipi di dati per i valori delle variabili nel codice personalizzato.When using the VariableDispenser, you must handle both the locking semantics and the casting of data types for variable values in your own code. È necessario utilizzare la proprietà VariableDispenser anziché le proprietà delle funzioni di accesso denominate e tipizzate se si desidera utilizzare una variabile non disponibile in fase di progettazione ma che viene creata a livello di codice in fase di esecuzione.You have to use the VariableDispenser property instead of the named and typed accessor properties if you want to work with a variable that is not available at design time but is created programmatically at run time.

Vedere ancheSee Also

Variabili di Integration Services (SSIS) Integration Services (SSIS) Variables
Utilizzo di variabili nei pacchettiUse Variables in Packages