Accesso variabili del pacchetto in uno script componente (di un Flusso di dati) non è la stessa di accesso variabili del pacchetto in uno script Task. Per un componente script, è necessario prima aprire lo Script Transformation Editor (fare clic con il tasto destro del mouse sul componente e selezionare "Modifica ..."). Nella sezione Proprietà personalizzate della scheda Script, è possibile immettere (o selezionare) le proprietà che si desidera rendere disponibili per lo script, in sola lettura o in lettura-scrittura:
Quindi, all'interno dello script stesso, le variabili saranno disponibili proprietà come fortemente tipizzato delle variabili oggetto:
// Modify as necessary
public override void PreExecute()
{
base.PreExecute();
string thePath = Variables.FilePath;
// Do something ...
}
public override void PostExecute()
{
base.PostExecute();
string theNewValue = "";
// Do something to figure out the new value...
Variables.FilePath = theNewValue;
}
public override void Input0_ProcessInputRow(Input0Buffer Row)
{
string thePath = Variables.FilePath;
// Do whatever needs doing here ...
}
un importante avvertimento: se avete bisogno di scrittura ad una variabile pacchetto, è possibile farlo solo nel metodo postExecute().
Per quanto riguarda il frammento di codice:
IDTSVariables100 varCollection = null;
this.VariableDispenser.LockForRead("User::FilePath");
string XlsFile;
XlsFile = varCollection["User::FilePath"].Value.ToString();
varCollection
viene inizializzato a null e mai impostato su un valore valido. Pertanto, qualsiasi tentativo di dereferenziazione non riuscirà a.
fonte
2012-11-19 17:51:29
Qual è l'errore o il comportamento imprevisto che si sta verificando? – billinkc