SSIS - parametri di ingresso

mercoledì 28 gennaio 2009 - 18.18

paspan Profilo | Newbie

salve,

cerco di esporre il mio prob.!

vorrei passare dei parametri da riga di comando, da utilizzare come variabili in una clusula where.
La select che contiene la where si trova in un Componente "OLE DB Source".......
il tutto ovviamente fatto in SSIS......

qualche idea?

ciao ciao

alx_81 Profilo | Guru

>salve,
Ciao e benvenuto su dotnethell!

>vorrei passare dei parametri da riga di comando, da utilizzare come variabili in una clusula where.
>La select che contiene la where si trova in un Componente "OLE DB Source".......
>il tutto ovviamente fatto in SSIS......
Cosa intendi con "passare dei parametri da riga di comando"? Intendi usando la DTExec?

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

paspan Profilo | Newbie

nn necessariamente.....

es:
ho una winForm dalla quale avvio l'esecuzione del packege (e nn ho nemmeno controllato se si puo fare), assumendo che si possa fare.
I parametri vengono quindi presi in input dalla form e passati al package per poi utilizzarli come parametri per una where:

es. Select * from MTable WHERE col1 = @Var1 AND col2 = @Var2

sia val1 che val2, vorrei legerli da input.

Spero di essemi spiegato, è un impresa pure farsi capire a parole! :)

grazie

Jeremy Profilo | Guru

Scusate l'intromissione e la mia ignoranza, ma cosa intendi per package...
Recentemente ho dato indicazioni ad un'altro utente di questo forum su come fare per passare parametri da riga di comando ad una sua applicazione.
Se può essere utile posto il link:
http://www.dotnethell.it/forum/messages.aspx?ThreadID=28300
altrimenti scusate l'intromissione.

Ciao.

paspan Profilo | Newbie

ciao...
ma figurati....

nn intendevo da applicazione semplicemente....:(

intendevo in input per un task di SSIS.

grazie

alx_81 Profilo | Guru

>intendevo in input per un task di SSIS.
Puoi illustrarci come richiami il SSIS? Vedrai che ci arriviamo
Poi posto sul mio blog la soluzione, perchè può servire
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

paspan Profilo | Newbie

Io avevo pensato!

Vorrei richiamare il package da un applicativo Win form e passargli i dati in qualche modo al package ( se questo si puo fare ).

Altriementi avevo pensato altra strada...... salvo i dati parametri inseriti nei campi dell'applicazione win in una tabella sql che scatena un trigger CLR che lancia il package, che come prima operazione legge l'ultima riga inserita nel DB (tanto i db sono locali e nn multi utenza) che contiene i valori inseriti.
All'interno della procedura SSIS il primo modulo è uno script che legge da DB e valorizza le variabili dichiarate nel package.

p.s.: Ho due dubbi...
1. Posso far partire un package da applicativo .NET (windows form) (uso la verisone express di sql sui client, mentre il package ovviamente lo realizzo usando una macchina dove è presente la versione server

ciao.... (che casino)

alx_81 Profilo | Guru

>Vorrei richiamare il package da un applicativo Win form e passargli
>i dati in qualche modo al package ( se questo si puo fare ).
A prescindere dalle soluzioni, dimmi che cosa fa il SSIS, spiegami per bene la situazione reale, magari troviamo il metodo migliore con piu' sicurezza.
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

paspan Profilo | Newbie

L'operazione è semplicissima.....

Assumiamo che i paramentri sono stati passati alla procedura SSIS,

viene fatta una ricerca su un DB oracle del tipo:

select * from Tabella where Val1 <= Km1 AND km1 <= val2

le rows risultanti vengono copiate nella tabella destinazione su SQL

FINE

il mio problema è prendere Val1 e Val2 (ma questo lo sappiamo )

alx_81 Profilo | Guru

>Assumiamo che i paramentri sono stati passati alla procedura SSIS,
dalla winform che dicevi prima..

>viene fatta una ricerca su un DB oracle del tipo:
>select * from Tabella where Val1 <= Km1 AND km1 <= val2
>le rows risultanti vengono copiate nella tabella destinazione su SQL
Quindi l'utente apre una applicazione windows e fa il transfer dei dati in base ai due parametri. Ti faccio due domande:

1) Perchè hai deciso di usare SSIS? Perchè hai trasformazioni di complesse e logiche particolari? Perchè se si tratta di una copia 1:1 (tabelle identiche o cmq molto simili per cui non servono trasformazioni particolari) puoi fare tutto direttamente da windows form con due connectionstring e ADO. Ovviamente però, devi avere i driver di ORACLE e di SQL SERVER per poterli far parlare tra loro.

2) Ammesso che usi SSIS, dalla windows application segnerei in una tabella (una coda) le richieste direttamente su dbserver. Un job che gira ogni "tot" tempo scoda le richieste di quella coda, in cui avrai scritto i parametri da passare al SSIS. Il SSIS come prima cosa legge i parametri con un cliclo foreach sulla coda.

Sappi che si possono passare i parametri usando gli oggetti e le librerie del runtime di SSIS. Ma devi installare le dll per poterle usare da Winapp.
Slegherei il tutto con la seconda soluzione. La winapp, a mio avviso, dovrebbe occuparsi solo di accodare, il DBServer, tramite JOB dovrebbe preoccuparsi di scodare ed eseguire l'importazione dei dati da oracle. In questo modo i provider di connessione risiederanno solo sul dbserver e non su ogni client in cui installi l'applicazione.

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

paspan Profilo | Newbie

l'allinamento da codice e tramite connessioni normalissime OLE ..ADO ecc....

lo gia realizzata :)

Ma volevo usare SSIS, in primis per iniziare a piazzarlo su qualche progetto, e poi perchè ha delle performace di trasferimento dati molto buone.

Che devo scaricare per usare SSIS da codice...mi dicevi delle dll....mi potresti postare il link se lo hai a portata di mano...altrimenti lo cerco!

Provo a realizzare la seconda soluzione :)

thx
Sei stato gentilissimo

alx_81 Profilo | Guru

>Ma volevo usare SSIS, in primis per iniziare a piazzarlo su qualche
>progetto, e poi perchè ha delle performace di trasferimento dati
>molto buone.
Sì, è vero, ma non lo lancerei da una windows form. Non lo vedo progettato per quello

>Che devo scaricare per usare SSIS da codice...mi dicevi delle dll....mi potresti postare il link se lo hai a portata di mano...altrimenti lo cerco!
leggi qui, forse hai già l'assembly
http://msdn.microsoft.com/en-us/library/ms136090.aspx

>Provo a realizzare la seconda soluzione :)
in effetti è più scalabile
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5