Problema con encoding en script de SqlServer

04/04/2007 - 17:42 por Mario Vázquez | Informe spam
Hola,

Tengo un problema curioso, que no sé como resolver.
Tengo una base de datos en Sql-Server2000. Desde el administrador
corporativo genero un script de la base de datos. Guardo el script con la
codificaión por defecto (unicode).
Desde un programa C# intento ejecutar el script generado de la siguiente
forma:

SqlConnection cnn = new SqlConnection("<...connectionString...>");
SqlCommand cmd;
string sql;

cnn.Open();
sql = System.IO.File.ReadAllText("<...ruta_del_fichero...>");
cmd = new SqlCommand(sql, cnn);
cmd.ExecuteNonQuery();

Esto me arroja un error de sintaxis. Obviamentte el script generado por el
administrador corporativo no tiene errores, es un problema de codificaión.
Sustituyo la linea que lee el fichero por:

sql = System.IO.File.ReadAllText("<path_to_the_script_file>",
System.Text.Encoding.Unicode);

pero el resultado es el mismo, un error de sintaxis. He probado generando el
script con las diferentes opciones de codificación que ofrece el
administrador corporativo, pero sin éxito.

¿Qué demonios pasa? ¿Cómo puedo ejecutar este script?


Gracias por cualquier ayuda.

Saludos,
Mario Vázquez

Preguntas similare

Leer las respuestas

#1 Gustavo Larriera (MVP)
04/04/2007 - 20:20 | Informe spam
Ayudaria mucho si nos muestras el texto del script.


Gustavo Larriera, MVP
http://aspnet2.com/mvp.ashx?GustavoLarriera
http://blogs.solidq.com/ES/glarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Mario Vázquez" wrote:

Hola,

Tengo un problema curioso, que no sé como resolver.
Tengo una base de datos en Sql-Server2000. Desde el administrador
corporativo genero un script de la base de datos. Guardo el script con la
codificaión por defecto (unicode).
Desde un programa C# intento ejecutar el script generado de la siguiente
forma:

SqlConnection cnn = new SqlConnection("<...connectionString...>");
SqlCommand cmd;
string sql;

cnn.Open();
sql = System.IO.File.ReadAllText("<...ruta_del_fichero...>");
cmd = new SqlCommand(sql, cnn);
cmd.ExecuteNonQuery();

Esto me arroja un error de sintaxis. Obviamentte el script generado por el
administrador corporativo no tiene errores, es un problema de codificaión.
Sustituyo la linea que lee el fichero por:

sql = System.IO.File.ReadAllText("<path_to_the_script_file>",
System.Text.Encoding.Unicode);

pero el resultado es el mismo, un error de sintaxis. He probado generando el
script con las diferentes opciones de codificación que ofrece el
administrador corporativo, pero sin éxito.

¿Qué demonios pasa? ¿Cómo puedo ejecutar este script?


Gracias por cualquier ayuda.

Saludos,
Mario Vázquez



Respuesta Responder a este mensaje
#2 Gustavo Larriera (MVP)
04/04/2007 - 20:20 | Informe spam
Ayudaria mucho si nos muestras el texto del script.


Gustavo Larriera, MVP
http://aspnet2.com/mvp.ashx?GustavoLarriera
http://blogs.solidq.com/ES/glarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Mario Vázquez" wrote:

Hola,

Tengo un problema curioso, que no sé como resolver.
Tengo una base de datos en Sql-Server2000. Desde el administrador
corporativo genero un script de la base de datos. Guardo el script con la
codificaión por defecto (unicode).
Desde un programa C# intento ejecutar el script generado de la siguiente
forma:

SqlConnection cnn = new SqlConnection("<...connectionString...>");
SqlCommand cmd;
string sql;

cnn.Open();
sql = System.IO.File.ReadAllText("<...ruta_del_fichero...>");
cmd = new SqlCommand(sql, cnn);
cmd.ExecuteNonQuery();

Esto me arroja un error de sintaxis. Obviamentte el script generado por el
administrador corporativo no tiene errores, es un problema de codificaión.
Sustituyo la linea que lee el fichero por:

sql = System.IO.File.ReadAllText("<path_to_the_script_file>",
System.Text.Encoding.Unicode);

pero el resultado es el mismo, un error de sintaxis. He probado generando el
script con las diferentes opciones de codificación que ofrece el
administrador corporativo, pero sin éxito.

¿Qué demonios pasa? ¿Cómo puedo ejecutar este script?


Gracias por cualquier ayuda.

Saludos,
Mario Vázquez



Respuesta Responder a este mensaje
#3 Mario Vázquez
04/04/2007 - 21:40 | Informe spam
El script no contiene ningún error, puedo abrirlo sin problemas con el
analizador de consultas y ejecutarlo. El problema ocurre al intentar leerlo
y ejecutarlo desde código C#, tal como expongo en el mensaje.


"Gustavo Larriera (MVP)"
escribió en el mensaje
news:
Ayudaria mucho si nos muestras el texto del script.


Gustavo Larriera, MVP
http://aspnet2.com/mvp.ashx?GustavoLarriera
http://blogs.solidq.com/ES/glarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Mario Vázquez" wrote:

Hola,

Tengo un problema curioso, que no sé como resolver.
Tengo una base de datos en Sql-Server2000. Desde el administrador
corporativo genero un script de la base de datos. Guardo el script con la
codificaión por defecto (unicode).
Desde un programa C# intento ejecutar el script generado de la siguiente
forma:

SqlConnection cnn = new SqlConnection("<...connectionString...>");
SqlCommand cmd;
string sql;

cnn.Open();
sql = System.IO.File.ReadAllText("<...ruta_del_fichero...>");
cmd = new SqlCommand(sql, cnn);
cmd.ExecuteNonQuery();

Esto me arroja un error de sintaxis. Obviamentte el script generado por
el
administrador corporativo no tiene errores, es un problema de
codificaión.
Sustituyo la linea que lee el fichero por:

sql = System.IO.File.ReadAllText("<path_to_the_script_file>",
System.Text.Encoding.Unicode);

pero el resultado es el mismo, un error de sintaxis. He probado generando
el
script con las diferentes opciones de codificación que ofrece el
administrador corporativo, pero sin éxito.

¿Qué demonios pasa? ¿Cómo puedo ejecutar este script?


Gracias por cualquier ayuda.

Saludos,
Mario Vázquez



Respuesta Responder a este mensaje
#4 Mario Vázquez
04/04/2007 - 21:40 | Informe spam
El script no contiene ningún error, puedo abrirlo sin problemas con el
analizador de consultas y ejecutarlo. El problema ocurre al intentar leerlo
y ejecutarlo desde código C#, tal como expongo en el mensaje.


"Gustavo Larriera (MVP)"
escribió en el mensaje
news:
Ayudaria mucho si nos muestras el texto del script.


Gustavo Larriera, MVP
http://aspnet2.com/mvp.ashx?GustavoLarriera
http://blogs.solidq.com/ES/glarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Mario Vázquez" wrote:

Hola,

Tengo un problema curioso, que no sé como resolver.
Tengo una base de datos en Sql-Server2000. Desde el administrador
corporativo genero un script de la base de datos. Guardo el script con la
codificaión por defecto (unicode).
Desde un programa C# intento ejecutar el script generado de la siguiente
forma:

SqlConnection cnn = new SqlConnection("<...connectionString...>");
SqlCommand cmd;
string sql;

cnn.Open();
sql = System.IO.File.ReadAllText("<...ruta_del_fichero...>");
cmd = new SqlCommand(sql, cnn);
cmd.ExecuteNonQuery();

Esto me arroja un error de sintaxis. Obviamentte el script generado por
el
administrador corporativo no tiene errores, es un problema de
codificaión.
Sustituyo la linea que lee el fichero por:

sql = System.IO.File.ReadAllText("<path_to_the_script_file>",
System.Text.Encoding.Unicode);

pero el resultado es el mismo, un error de sintaxis. He probado generando
el
script con las diferentes opciones de codificación que ofrece el
administrador corporativo, pero sin éxito.

¿Qué demonios pasa? ¿Cómo puedo ejecutar este script?


Gracias por cualquier ayuda.

Saludos,
Mario Vázquez



Respuesta Responder a este mensaje
#5 Javier Loria
04/04/2007 - 21:55 | Informe spam
Hola Mario:
El problema son los comandos GO que tiene el script. El comando GO NO es
de SQL es un comando del cliente en este caso el administrador corporativo.
Tendrias que tomar el script y dividirlo en segmentos usando el GO como
divisor.
Saludos,

Javier Loria
Costa Rica (MVP)
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.


"Mario Vázquez" wrote in message
news:
El script no contiene ningún error, puedo abrirlo sin problemas con el
analizador de consultas y ejecutarlo. El problema ocurre al intentar
leerlo y ejecutarlo desde código C#, tal como expongo en el mensaje.


"Gustavo Larriera (MVP)"
escribió en el mensaje
news:
Ayudaria mucho si nos muestras el texto del script.


Gustavo Larriera, MVP
http://aspnet2.com/mvp.ashx?GustavoLarriera
http://blogs.solidq.com/ES/glarriera
Este mensaje se proporciona tal como es, sin garantías de ninguna clase.



"Mario Vázquez" wrote:

Hola,

Tengo un problema curioso, que no sé como resolver.
Tengo una base de datos en Sql-Server2000. Desde el administrador
corporativo genero un script de la base de datos. Guardo el script con
la
codificaión por defecto (unicode).
Desde un programa C# intento ejecutar el script generado de la siguiente
forma:

SqlConnection cnn = new SqlConnection("<...connectionString...>");
SqlCommand cmd;
string sql;

cnn.Open();
sql = System.IO.File.ReadAllText("<...ruta_del_fichero...>");
cmd = new SqlCommand(sql, cnn);
cmd.ExecuteNonQuery();

Esto me arroja un error de sintaxis. Obviamentte el script generado por
el
administrador corporativo no tiene errores, es un problema de
codificaión.
Sustituyo la linea que lee el fichero por:

sql = System.IO.File.ReadAllText("<path_to_the_script_file>",
System.Text.Encoding.Unicode);

pero el resultado es el mismo, un error de sintaxis. He probado
generando el
script con las diferentes opciones de codificación que ofrece el
administrador corporativo, pero sin éxito.

¿Qué demonios pasa? ¿Cómo puedo ejecutar este script?


Gracias por cualquier ayuda.

Saludos,
Mario Vázquez









Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida