como ejecuto scripts SQL que contienen "GO" con OdbcCommand u otro

13/08/2008 - 23:06 por Mauro SB | Informe spam
HOla, como puedo hacer para ejecutar desde una aplicacion winform un script
sql que contiene sentencias GO, que no son interpretadas por ODBC, se que
alguna vez lo hice en VB6 pero no encuentro la forma en .net.
no quiero tener que utilizar el isql o parecidos. ya que quiero tener el
control de la salida del script.
muchas gracias!!!
 

Leer las respuestas

#1 Jesús López
14/08/2008 - 12:03 | Informe spam
Tienes que parsear el script, el GO es un separador de procesos por lotes
así que tienes que separarlos tú mismo y enviarlos separadamente a SQL
Server. No puedes enviar el script completo a SQL Server.


Este fragmento de código es un muy simplista, pero da una idea de lo que hay
que hacer:

string script = ReadScriptFormFile("MyScript.sql");
string[] batches = script.Split("GO");
foreach (string batch in baches)
{
cmd.CommandText = batch;
cmd.ExecuteNonQuery();
}

El parseo no va a ser tan simple como un Split, y probablemente tengas que
usar ExecuteReader y IDataReader.NextResult..

Saludos:

Jesús López
www.solidq.com






"Mauro SB" escribió en el mensaje
news:
HOla, como puedo hacer para ejecutar desde una aplicacion winform un
script
sql que contiene sentencias GO, que no son interpretadas por ODBC, se que
alguna vez lo hice en VB6 pero no encuentro la forma en .net.
no quiero tener que utilizar el isql o parecidos. ya que quiero tener el
control de la salida del script.
muchas gracias!!!

Preguntas similares