Windows Powershell e’ una potentissima shell che regala a un utente Windows potenzialita’ che fino ad ora erano a disposizione soltanto su Unix/Linux. La particolarita’ consiste nel fatto che e’ possibile invocare oggetti del framework .NET direttamente dalla linea di comando; questo apre mondi nuovi….. Ho iniziato a smanettare sulla PS grazie a questo libro, che e’ pero’ carente sulla parte di aggancio al database, cosa che a me interessa particolarmente.

Voglio sopperire a questa mancanza inserendo in questo post un semplice esempio di creazione di una connessione verso MSSQL e dell’esecuzione di una query con visualizzazione del risultato.

////Creo la connessione vs MSSQL
PS C:\Users\Cris> $conn=New-Object System.Data.SqlClient.SqlConnection(”Data source=localhost;user id=sa;password=password;initial catalog=dbname”)
///Creo il dataset
PS C:\Users\Cris> $ds=New-Object System.Data.DataSet “ds”
///Query
PS C:\Users\Cris> $q=”select * from nome_tabella”
///Creo il DataAdapter
PS C:\Users\Cris> $da=New-Object System.Data.SqlClient.SqlDataAdapter($q,$conn)
///Riempio il dataset
PS C:\Users\Cris> $da.Fill($ds)
3 <—– output risultante con il numero di records estratti

////Creo la datatable su cui dopo faro’ il loop
PS C:\Users\Cris> $dt=new-Object System.Data.DataTable dt
PS C:\Users\Cris> $dt=$ds.Tables[0]
////Effettuo il loop e stampo il record corrente grazie alla magica variabile $_ (di provenienza Perlifera) che identifica il record corrente
PS C:\Users\Cris> $dt | foreach-object {” “+$_.id+” “+$_.cognome+” “+$_.nome}
1 Di Sclafani Cris
2 Galia Cristina
3 Di Sclafani Federica
PS C:\Users\Cris>
PS C:\Users\Cris> $conn.Close();

et voila’. Semplicissimo

Comments

Leave a Reply