in

UGISS Community

Il sito della community dello User Group Italiano di SQL Server

gestire una connessione in uno script component

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

    gestire una connessione in uno script component

    Salve,

    sto cercando l'oggetto migliore da usare per stabilire la connessione al database all'interno di uno script component.

    Dato che nella sezione  connectionmanagers c'è la possibilità di inserire le connessioni usate nello script, come faccio a richia
    marle dal codice dello script?

     

    ciao ciao da angy 

     

     


    • Post Points: 20
  • 06-18-2007 12.33 In reply to

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

    Re: gestire una connessione in uno script component

    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-18-2007 12.54 In reply to

    Re: gestire una connessione in uno script component

    il problema non è vedere le connessioni presenti dallo script del control flow, ma da quello del dataflow, dato che non vede il dts come oggetto.

    Nella finestra di uno script component permette di selezionare diverse connessioni, ma quando apre lo script per l'editing del codice  non ho trovato nessun esempio ben strutturato tra i libri on line che indichi come fare a selezionare una connessione al posto di un'altra.

    La strada più vicina a quello che mi serve è

           'dati in input passati all'output

            Dim track As String
            track = Row.Track.ToString()
            Row.TrackSel = track
            Row.LocationSel = CDbl(Row.Location.ToString())
           

            Dim Conn As New ConnectionManagerOleDb

            'Dim varConn As Object
            'Dim Trans As String

            'Trans = "SELECT id FROM AssetBase where usercode='" + track + "'"

            'Dim Result As Object
            'Result = Conn.AcquireConnection(Trans)
            'Row.IdTrack = CUInt(Result.ToString())

            'Conn.ReleaseConnection(varConn)
     

    ma mi sa che l'oggetto transaction da passare non è impostato bene.

    Il mio obiettivo finale è ben più complesso, ma provo per piccoli passi.

    intanto cercando il campo track nella tabella AssetBase, bisogna tenere presente che il campo track mi arriva dal dataset in input allo script. la tabella appartiene al db Arc linkato nella finestra di connections manager dello script.

    ciao ciao da angy 

    • Post Points: 20
  • 06-18-2007 13.10 In reply to

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

    Re: gestire una connessione in uno script component

    Ciao Angy

    Ok, allora il link è questo:

    http://msdn2.microsoft.com/en-us/library/aa337080(SQL.90).aspx

    In pratica, cmq, non devi creare una istanza di un connection manager, ma devi collegarti ad uno gia esistente:

    Dim myADONETConnectionManager As IDTSConnectionManager90 = Me.Connections.MyADONETConnection

    Dal codice che hai postato, però, mi sembra che tu stia ricreando il funzionamento della Lookup Transformation....sei sicura che questa trasformazioni non ti risolva già il problema?

    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-18-2007 15.27 In reply to

    Re: gestire una connessione in uno script component

    non so se con la look up riesco ad uscirne.

    vedrò di essere più chiara.

    Input:

    per ogni riga di una tabella detta Works, devo validare in modo opportuno i campi presenti andando ad interrogare diverse tabelle.

    la prima validazione riguarda il campo Km e Tr presenti nella tabella works.

    Si deve interrogare la tabella Base, collezione di entità di diverso tipo e si cerca l'identificativo associato a Tr, con questo si interroga un'altra tabella detta TrSec dove vi sono tutti gli oggetti di tipo Sec che si riferiscono n a 1 con i Tr, (cioè per ogni Tr si hanno diversi sec).

    SI raccolgono dunque tutti i Sec e si cerca quale di questi ha il campo Km compreso tra inizio e fine del Sec.

    Se esiste si prende l'identificativo di Sec e lo si può aggiungere come colonna aggiuntiva nel dataset 

    Questa è solo la prima validazione!

    Avrei voluto risolvere il problema con una look up table ma non permette di prendere il valore del campo Tr dalla tabella Works in input che si trova in un altro db. Posso provare a spostare la tabella nello stesso db.

    spero di esser  stata più chiara.

    ciao ciao da angy 

     

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

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

    Re: gestire una connessione in uno script component

    angeladin:

    Avrei voluto risolvere il problema con una look up table ma non permette di prendere il valore del campo Tr dalla tabella Works in input che si trova in un altro db. Posso provare a spostare la tabella nello stesso db.

    Questo problema lo puoi risolvere in due modi: usi come tabella di lookup una vista che prende i dati dai due server, oppure usi dei lookup in cascata.

    Intendiamoci, se le validazione da fare sono molte e complesse, è probabilmente meglio seguire la strada della script transformation, ma prima di scegliere quest'ultima soluzione (che è la più complesse anche se la più potente e flessibile) è bene verificare se è possibile "spezzare" il problema in sottoinsiemi più semplici e magari risolvere il tutto con gli strumenti già nativamente a disposizione.

    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