Foros del Web » Programación para mayores de 30 ;) » .NET »

Hacer bulk insert

Estas en el tema de Hacer bulk insert en el foro de .NET en Foros del Web. Hola! Haber si me podeis ayudar. Tengo echo un bulk insert en sql server managment studio express, en una consulta. El problema está que cada ...
  #1 (permalink)  
Antiguo 07/04/2008, 06:42
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Hacer bulk insert

Hola!

Haber si me podeis ayudar. Tengo echo un bulk insert en sql server managment studio express, en una consulta. El problema está que cada vez que conecto la base de datos, me ejecuta dicha consulta.

¿Sabeis como se puede hacer para que no se ejecute dicha consulta?

Otra cosa es hacerlo en visual studio c#

Aki lo tengo echo de este modo:

string sSel = "BULK INSERT Proyecto.dbo.Expediente" +
"from 'c:\expediente.txt'" +
"with(ROWTERMINATOR='|\n'," +
"FIELDTERMINATOR =' |')";

cnn.Open();
SqlCommand command = new SqlCommand(sSel, cnn);

Pero el error que me da es el siguiente:

Secuencia de escape no reconocida. Y el error me da en from 'c:\expediente.txt

Espero vuestra ayuda.

Muchas gracias
  #2 (permalink)  
Antiguo 07/04/2008, 08:47
Avatar de xknown  
Fecha de Ingreso: diciembre-2004
Ubicación: Cusco - Perú
Mensajes: 2.248
Antigüedad: 19 años, 3 meses
Puntos: 7
Re: Hacer bulk insert

Cambia \ por \\ o agrega @ al principio de tu cadena.

Saludos
__________________
Alex Concha
Buayacorp - Programación y Diseño
  #3 (permalink)  
Antiguo 07/04/2008, 10:55
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Hacer bulk insert

Hola!!
Tengo este conexión establecida. La conexión funciona porque antes tenia la consulta del bulk insert en una consulta de sql managment. Pero ahora
para ponerla en visual studio me falla.


string sCnn = "Server=127.0.0.1;dataBase=Proyecto;integrated security=yes";
string sSel = "BULK INSERT Proyecto.dbo.Expediente" +
"from 'c:\\expediente.txt'" +
"with(ROWTERMINATOR='\n',FIELDTERMINATOR =' ')";

MessageBox.Show("eSTA CONECTADO..");
SqlConnection cnn = new SqlConnection(sCnn);

SqlCommand cmd = new SqlCommand(sSel, cnn);
cnn.Open();
int filas;
filas=cmd.ExecuteNonQuery();

cnn.Close();
MessageBox.Show("CIERRRA");

el fallo me da en executeNonQuery y me da lo siguiente:

Sintaxis incorrecta cerca de 'c:\expediente.txt'.
Sintaxis incorrecta junto a la palabra clave 'with'. Si esta instrucción es una expresión de tabla común o una cláusula xmlnamespaces, la instrucción
anterior debe terminarse con punto y coma (;).

no se porque me da estos error!!!

Gracias por vuestra ayuda
  #4 (permalink)  
Antiguo 07/04/2008, 10:56
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Re: Hacer bulk insert

ponle un espacio antes del with
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #5 (permalink)  
Antiguo 07/04/2008, 11:28
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Hacer bulk insert

Nada peter!!

Le he puesto antes del with y le he puesto para probar al final del fichero txt,
pero nada no funciona.

gracias de todos modos seguire probando cosas, en cuanto lo solucione, os
comento como lo he conseguido.

Un saludo

Gracias
  #6 (permalink)  
Antiguo 07/04/2008, 11:50
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Re: Hacer bulk insert

tienes un problema lo q dijo xknow esta bien tienes muchos caracteres de escape mejor utiliza un stringbuilder o agrega el arroba antes de las comillas iniciales.


@" para q considere ltodo lo q escribes correctamente

antes de enviar tu comando revisa q valor tiene sSel y postealo
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #7 (permalink)  
Antiguo 07/04/2008, 12:17
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Hacer bulk insert

Ya lo he realizado pero nada de nada.

string sSel = @"BULK INSERT Proyecto.dbo.Expediente" +
@"from'c:\expediente.txt'" +
@" with(ROWTERMINATOR='\n',FIELDTERMINATOR =' ')";

El sSel contiene lo mismo que aqui arriba lo unica con cuando pone c:\ me pone c:\\ al igual que en \n que pone \\n. ¿Puede ser este el error?

Este mismo bulk insert me funciona en sql managment. y la conexión me funciona
porque he estado trabajando con ella.

Gracias por vuestra ayuda.
  #8 (permalink)  
Antiguo 07/04/2008, 12:27
Avatar de Peterpay
Colaborador
 
Fecha de Ingreso: septiembre-2007
Ubicación: San Francisco, United States
Mensajes: 3.858
Antigüedad: 16 años, 7 meses
Puntos: 87
Re: Hacer bulk insert

pero en tiempo de ejecucion q valor tiene, peude cambiar por como trate los caracteres de escape, debugealo y postealo
__________________
Curso WF4
http://cursos.gurudotnet.com/ DF
Aprende HTML5
  #9 (permalink)  
Antiguo 07/04/2008, 12:28
 
Fecha de Ingreso: febrero-2008
Mensajes: 74
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Hacer bulk insert

Hola!

Lo he solucionado más o menos pero me sirve.

Lo he dejado todo en una linea:

@"BULK INSERT Proyecto.dbo.Expediente FROM 'c:\expediente.txt'WITH(ROWTERMINATOR='\n',FIELDTE RMINATOR =' ')";

así lo he echo. y asi funciona.

Muchas gracias por vuestra ayuda. Seguramente hay poner algo más que un + despues del for.

Muchas gracias por vuestros consejos, los tendré encuenta a partir de ahora.

Un saludo.
  #10 (permalink)  
Antiguo 08/08/2008, 11:31
 
Fecha de Ingreso: marzo-2007
Ubicación: Guadalajara
Mensajes: 18
Antigüedad: 17 años, 1 mes
Puntos: 1
Busqueda Respuesta: Re: Hacer bulk insert

Ya no es tiempo para esto, pero todo el tiempo tuviste el ERROR donde termina la primera parte de la cadena "Proyecto.dbo.Expediente" <-- aquí nunca pusiste espacio, corregiste las otras dos partes, pero ahí jamás!, por eso cuando la dejaste en una sola línea, si funcionó!!, porque ahí sí marcaste los espacios. Bueno, también por tus caracteres de escape.

La principal causa de tus errores es la falta de atención que pones al escribir, mira:

--------------------------

Hola!

Lo he solucionado más o menos pero me sirve.

Lo he dejado todo en una linea:

@"BULK INSERT Proyecto.dbo.Expediente FROM 'c:\expediente.txt'WITH(ROWTERMINATOR='\n',FIELDTE RMINATOR =' ')";

así lo he echo. y asi funciona.

Muchas gracias por vuestra ayuda. Seguramente hay poner algo más que un + despues del for.

Muchas gracias por vuestros consejos, los tendré encuenta a partir de ahora.

Un saludo.

--------------------------
CORRECCIÓN:

Hola!

Lo he solucionado MAS o menos, pero me sirve.

Lo he dejado todo en una LÍNEA:

@"BULK INSERT Proyecto.dbo.Expediente FROM 'c:\expediente.txt' WITH(ROWTERMINATOR='\n',FIELDTE RMINATOR =' ')";

así lo he HECHO y ASÍ funciona.

Muchas gracias por vuestra ayuda. Seguramente hay QUE poner algo más que un + despues del FROM.

Muchas gracias por vuestros consejos, los tendré EN CUENTA a partir de ahora.

Un saludo.

--------------------

pfff
Saludos xD
jajajaj tengo mucho trabajo
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:38.