Comando OSQL con c#

lunedì 22 settembre 2008 - 23.41

kintaro Profilo | Junior Member

ciao a tutti premetto che sono novello del forum e non sono un grande esperto nel c#

la mia domanda è questa :

ho uno script SQL che mi viene generato dalla mia windos form (non lo eseguo direttamente con sul db con un sqlcommand per avere controllo prima di modificare la produzione) vorrei quindi eseguire lo script sempre dal mio pgm utilizzando un comando osql

avevo pensato di utilizzare la classe System.Diagnostic.Process.start ma mi sembra di aver capito che qst classe esegue solo cd o eseguibili

qualcuno può illuminarmi??

grazie in anticipo

Fabio

alx_81 Profilo | Guru

>ciao
ciao!
>
>la mia domanda è questa :
>
>ho uno script SQL che mi viene generato dalla mia windos form
>(non lo eseguo direttamente con sul db con un sqlcommand per
>avere controllo prima di modificare la produzione) vorrei quindi
>eseguire lo script sempre dal mio pgm utilizzando un comando
>osql
Potresti spiegarti meglio? non vedo l'utilità di osql..

>grazie in anticipo
di nulla!
--

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

kintaro Profilo | Junior Member

Spiego meglio il mio dilemma...

io per fare il passaggio in produzione dopo aver certificato lo script che mi mandano lo devo eseguire per circa 500 db uguali per struttura e nomi degli oggetti

io per fare questo utulizzo i comandi OSQL.
quindi metto la mia riga comando dentro un eseguibile (.bat) ci metto tutti i paramentri che voglio e con dippio click ho un risultato eccellente.

siccome ho fatto un applicazione per la gestione dei db davvero efficente e permetterebbe di far il mio lavoro anche ai miei colleghi senza compromettere la basedati e evitando gli errori dettati dalla manualità avrei bisogno di eseguire quella riga comando anziche dentro il codice c#

in questo modo posso ricreare il mio comando osql dimanicamente a seconda del server a seconda del tipo di query che sto per eseguire (ma qst è un altra storia)

l'alternativa che fa veramente schifo che sono stato in grado di fare è qst:

ho una classe che attraverso lo streamwriter mi crea il file .bat e ci scrive dentro la riga di comando.
poi attraverso la System.Diagnostic.Process.Start eseguo il mio file bat ...

ma lo considero un accrocco!!!

qualcuno, sperando di essermi spiegato mi può dare una mano??

grazie

ciao

Fabio

alx_81 Profilo | Guru

>qualcuno, sperando di essermi spiegato mi può dare una mano??
che versione di sql server hai e che edizione?
perchè coi nuovi strumenti, tipo PowerShell o SMO secondo me puoi fare qualcosa..
--

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

kintaro Profilo | Junior Member

che ritardo nella risposta!! :)
il progetto è statp consegnato.

le basi dati che gestisco sono differenti anche per la versione di SQL server utilizzo sia la 2000 che la 2005.

siccome sono basi dati di produzione ed ogni script deve essere ripetuto per N volte per qnt sono i db mi serviva uno script che mi permettesse più controllo possibile prima di essere eseguito visto che c'erano anche delle variabili che venivano passate da XML.

era importante ricevere attraverso email la risposta della query, con i metodi c# non mi era possibile questo visto che a seconda del tipo di query o script che eseguo ho un tipo di risposta, con i comandi OSQL riesco a catturare tt le risposte della query\script che mando al server.

sarebbe stato piu facile attraverso l'assembly microsoft.server.magement.smo utilizzare il mio script per eseguirlo dimamicamente su ogni db, ma incontravo il problema della risposta e del 2000 che non era compatibile.

alla fine ho fatto l'accrocco: creo lo script, creo un .bat con un comando OSQL dove gli dico dove ho messo lo stesso script, creo il LOG con il mio .bat lo invio su mail e poi prendo tutti i file creati e li cancello.

non avrei voluto creare il .bat ma alla fine avevo urgenza di consegnare il tools.

il pgm funziona benissimo e le performance sono ottime, è completamente pilotabile da xml che rende possibile il suo utilizzo su qualsiasi ambiente sql server, se può servire fatemi sapere che ve l'ho spedisco!

ciao

Fabio

alx_81 Profilo | Guru

>che ritardo nella risposta!! :)
>il progetto è statp consegnato.
Ti chiedo scusa.. mi era proprio scappato.. azz.
Però sappi che ci ho messo la buona volontà!

>alla fine ho fatto l'accrocco: creo lo script, creo un .bat con
>un comando OSQL dove gli dico dove ho messo lo stesso script,
>creo il LOG con il mio .bat lo invio su mail e poi prendo tutti
>i file creati e li cancello.
>non avrei voluto creare il .bat ma alla fine avevo urgenza di
>consegnare il tools.
>il pgm funziona benissimo e le performance sono ottime, è completamente
>pilotabile da xml che rende possibile il suo utilizzo su qualsiasi
>ambiente sql server, se può servire fatemi sapere che ve l'ho
>spedisco!
Mi fa piacere che tutto vada bene. Mi scuso ancora.

>ciao
ciao!
--

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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5