in

UGISS Community

Il sito della community dello User Group Italiano di SQL Server

errore con lo script component

Last post 06-20-2007 9.55 by dmauri. 5 replies.
Page 1 of 1 (6 items)
Sort Posts: Previous Next
  • 06-19-2007 14.28

    errore con lo script component

    Quando mando in esecuzione lo scriptcomponent sotto il modulo data flow task
     

    Object reference not set to an instance of an object.

     

      at ScriptComponent_cbd20869ef204fc8bfffe9034f690827.ScriptMain.InputLoading_ProcessInputRow(InputLoadingBuffer Row)
       at ScriptComponent_cbd20869ef204fc8bfffe9034f690827.UserComponent.InputLoading_ProcessInput(InputLoadingBuffer Buffer)
       at ScriptComponent_cbd20869ef204fc8bfffe9034f690827.UserComponent.ProcessInput(Int32 InputID, PipelineBuffer Buffer)
       at Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput(Int32 inputID, PipelineBuffer buffer)

    può essere un problema di link dato che non arriva proprio ai breakpoint che imposto, un comportamento del genere lo avevo quando diversi script avevano lo stesso nome di classe (che definisce poi l'entry point allo script)

    Ma con questo componente se rinomino la class nel codice e nel nome del file, non mi dà la possibilità di impostare l'entry point dalla finestra di impostazioni dello stesso.
     

     ciao ciao da angy

     

     

    • Post Points: 5
  • 06-19-2007 14.39 In reply to

    Re: errore con lo script component

    scusate ho risolto il problema in parte. avevo chiamato una variabile in input aggiungendo il tostring() per farmi tornare la stringa, ma non ce ne era bisogno.

     

    • Post Points: 5
  • 06-19-2007 14.52 In reply to

    Re: errore con lo script component

    mi dà un altro errore adesso

      at Microsoft.SqlServer.Dts.Pipeline.ScriptComponent.get_ReadWriteVariables()
       at ScriptComponent_cbd20869ef204fc8bfffe9034f690827.Variables.set_IdRailEast(Int32 Value)
       at ScriptComponent_cbd20869ef204fc8bfffe9034f690827.ScriptMain.InputLoading_ProcessInputRow(InputLoadingBuffer Row)
       at ScriptComponent_cbd20869ef204fc8bfffe9034f690827.UserComponent.InputLoading_ProcessInput(InputLoadingBuffer Buffer)
       at ScriptComponent_cbd20869ef204fc8bfffe9034f690827.UserComponent.ProcessInput(Int32 InputID, PipelineBuffer Buffer)
       at Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput(Int32 inputID, PipelineBuffer buffer)

    come se non potesse fare il setting della variabile perchè non ha l'accesso in scrittura ad essa, ma io l'ho elencata nella voce 

    ReadWriteVariables 

    e chiamata  nell'editor con

    Me.Variables.IdRailEast = CInt(Row.Id.ToString())

    il problema è l'assegnamento perchè anche sostiutuendo con un valore intero non lo fa.

    C'è qualche altro punto in cui devo dichiarare la variabile in lettura e scrittura?

    angy 

    • Post Points: 20
  • 06-19-2007 15.03 In reply to

    • dmauri
    • Top 10 Contributor
      Male
    • Joined on 05-14-2007
    • Novate Milanese
    • Posts 1.182
    • Points 15.485

    Re: errore con lo script component

    Come leggibile dai Books Online

    http://msdn2.microsoft.com/en-us/library/92d1881a-1ef1-43ae-b1ca-48d0536bdbc2(SQL.90).aspx

    l'assegnazione del valore di una variabile del package in uno Script Trasformation può essere fatta solo nel metodo PostExecute.

    "The collection of ReadWriteVariables is only available in the PostExecute method to maximize performance and minimize the risk of locking conflicts. Therefore you cannot directly increment the value of a package variable as you process each row of data. 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. You can also use the VariableDispenser property to work around this limitation, as described later in this topic. However, writing directly to a package variable as each row is processed will negatively impact performance and increase the risk of locking conflicts."

    Davide Mauri
    Microsoft MVP - SQL Server, MCP, MCAD, MCDBA, MCT - http://www.davidemauri.it
    Socio Fondatore e Mentor di Solid Quality Learning Italy - http://www.solidq.com
    Presidente di UGISS: User Group Italiano Sql Server - http://www.ugiss.org
    • Post Points: 20
  • 06-19-2007 15.54 In reply to

    Re: errore con lo script component

    la soluzione che stavo impostando era sicuramente a livello di performance sbagliata, poi intendevo analizzare tutto il db riga per riga con uno script.

    infatti, dopo mi sono orientata verso un'altra strada, semplicemente con un Execute SQL Task che preleva le info che mi servono due colonne (id,codice interno) (conosco le condizioni da imporre sul campo codice interno) e le butta in un object,

    in questo modo estrapolo le 4 righe che mi servono e dopo le posso usare in qualsiasi momento del mio processo di validazione. giusto?

    grazie ;-) 

    ciaociao da angy 

    • Post Points: 20
  • 06-20-2007 9.55 In reply to

    • dmauri
    • Top 10 Contributor
      Male
    • Joined on 05-14-2007
    • Novate Milanese
    • Posts 1.182
    • Points 15.485

    Re: errore con lo script component

    Direi che mi sembra una soluzione migliore :-)

    Davide Mauri
    Microsoft MVP - SQL Server, MCP, MCAD, MCDBA, MCT - http://www.davidemauri.it
    Socio Fondatore e Mentor di Solid Quality Learning Italy - http://www.solidq.com
    Presidente di UGISS: User Group Italiano Sql Server - http://www.ugiss.org
    • Post Points: 5
Page 1 of 1 (6 items)
(C) 2007 User Group Italiano di SQL Server