Foros del Web » Programando para Internet » ASP Clásico »

Insert desde CSV

Estas en el tema de Insert desde CSV en el foro de ASP Clásico en Foros del Web. Saludos. Tengo un archivo .CSV con lo siguiente (EJ): 1,2,asd,red,1,8 2,3,eds,withe,4,2 Ahora necesito subir ese archivo al servidor luego abrirlo, leer su contenido y hacer ...
  #1 (permalink)  
Antiguo 11/10/2004, 14:42
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 23 años, 4 meses
Puntos: 1
Insert desde CSV

Saludos.

Tengo un archivo .CSV con lo siguiente (EJ):

1,2,asd,red,1,8
2,3,eds,withe,4,2

Ahora necesito subir ese archivo al servidor luego abrirlo, leer su contenido y hacer un INSERT a una tabla por cada línea.

INSERT INTO TABLA (a,b,c,d,e,f) VALUES ('1','2','asd','red','1','8')
INSERT INTO TABLA (a,b,c,d,e,f) VALUES ('2','3','eds','withe','4','2')

Ya se como subir el archivo al server. Ahora:

En PHP utilizaria:

- File
- Open File
- Explode
- INSERT
- Close

Ahora, la verdad no se como escribir esos comendos en ASP.

Me ayudan??

Gracias
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.

Última edición por José Molina; 11/10/2004 a las 14:43
  #2 (permalink)  
Antiguo 11/10/2004, 15:37
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98


Bueno, asumiendo que tengamos ya una conexión activa llamada ObjConn, valiéndonos del uso del FileSystemObject para leer el archivo CSV:

Código:
<%
'Obtenemos una ruta
path = Server.Mappath(".")
'Instanciamos el objeto
Set FSO = Server.createObject("Scripting.FileSystemObject")
'Abrimos el archivo
Set miArchivo = FSO.OpenTextFile(path & "\archivo.csv")

'MIentras no se acaben las líneas en el archivo
While not miArchivo.AtEndOfStream
             'Obtenemos un array que identifique al caracter "," como delimitador
	arrValores = split(miArchivo.readline, ",")
	varTemp = ""
             'Incrementamos una variable de acuerdo al número de índices en el arreglo
	For i = 0 to uBound(arrValores)
		varTemp = varTemp & "'" & arrValores(i) & "',"
	Next
             'Le quitamos la última "," a nuestra variable
	varTemp = left(varTemp, len(varTemp) - 1)
             'Imprimimos la salida de la sentencia 
	Response.Write("INSERT INTO TABLA(a,b,c,d,e,f) VALUES(" & varTemp & ")<br>") 
	'Quitar comentario a la siguiente línea
	'ObjConn.Execute("INSERT INTO TABLA(a,b,c,d,e,f) VALUES(" & varTemp & ")")
Wend
%>
Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 13/10/2004, 08:03
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 23 años, 4 meses
Puntos: 1
Muchas Gracias lo probare y dejare mis impresiones.
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #4 (permalink)  
Antiguo 18/10/2004, 06:57
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 23 años, 4 meses
Puntos: 1
Muy Bien. Explico lo que me ocurrio

Coloque lo referido, pero la página se queda cargando y cargando y finalmente se tranca el server (es un IIS local en mi PC).

Pense que sería la RUTA que la estaba colocando mal, pero relamente la verifique y esta bien.

Incluso en algún momento me dijo que estaba colcocando la ruta física y que debería colocar la Lógica.

Ahora pregunto, Cual debe colocar??

Si la ruta física donde esta el archivo a abrir es: c:\inetpub\wwwroot\site\uploads

Y la ruta lógica de donde esta el archivo ASP donde estoy ejecutando el código es: http://personal/site/codigo.asp

Entonces esta bien esto:

path = Server.Mappath("../")
Set FSO = Server.createObject("Scripting.FileSystemObject")
Set miArchivo = FSO.OpenTextFile(path & "\uploads\archivo.csv")

La verdad es que la página se queda como cargando, pero nunca me devuelve un error ni nada.

Alguna idea?
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #5 (permalink)  
Antiguo 18/10/2004, 09:14
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Suele ocurrir eso cuando desde un script accedés al FSO. Otra cosa que suele ocurrir (supongo que se tratará de qué antivirus tengas instalado) es que éste te informe que hay un script "potencialmente dañino" que intenta acceder al HDD (pero por lo menos te lo informa, en vez de quedar cargando eternamente sin decir ni "mu")

Estoy casi seguro que se trata del antivirus. Desactivá la opción de bloqueo de script y volvé a probarlo.
__________________
...___...
  #6 (permalink)  
Antiguo 18/10/2004, 09:27
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 23 años, 4 meses
Puntos: 1
Jejeje exactamente eso también lo pense. Pero desactive el norton y nada.

También pense en los permisos de la carpeta y del archivo, pero estan en 777 así que eso tampoco es.

La cosa es que se queda pensando sin decir ni hacer nada. Cierro el navegador y cuando intento entrr nuevamente me lanza un mensaje diciendo que el Servidor esta ocupado. Y no me deja hacer nada. Tengo que reiniciar el IIS para que funcione todo nuevamente

Ahora no detectas algún error en como coloque la ruta??
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.

Última edición por José Molina; 18/10/2004 a las 09:29
  #7 (permalink)  
Antiguo 18/10/2004, 09:45
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
dejá que lo pruebo aquí a ver qué onda..
__________________
...___...
  #8 (permalink)  
Antiguo 18/10/2004, 09:53
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Bien, pues me está funcionando correctamente.
Con este contenido en el archivo "archivo.csv":


Código:
1,2,asd,red,1,8
2,3,eds,withe,4,2

Me genera lo siguiente:


Código:
INSERT INTO TABLA(a,b,c,d,e,f) VALUES('1','2','asd','red','1','8')
INSERT INTO TABLA(a,b,c,d,e,f) VALUES('2','3','eds','withe','4','2')

No desactives el norton, andá a sus opciones y desactivá el "bloqueo de scripts" (alguna vez leí que, aunque lo desactives, el bloqueo éste continúa activo). Probá de hacer eso y si continúa buscamos otra alternativa.
__________________
...___...
  #9 (permalink)  
Antiguo 18/10/2004, 10:00
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 23 años, 4 meses
Puntos: 1
Uhmm lo voy a subir a internet para probarlo.

Les aviso
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
  #10 (permalink)  
Antiguo 18/10/2004, 11:54
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Cita:
No desactives el norton, andá a sus opciones y desactivá el "bloqueo de scripts"
Exactamente, aun y que desactives el Norton, no basta, si lo desactivas tendrás que reiniciar el equipo con el Norton desactivado, como te dice AZ, lo que tienes que hacer es desactivar la opción de bloqueo de scripts...debe ser eso nada más.


Salu2,
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #11 (permalink)  
Antiguo 19/10/2004, 06:56
Avatar de José Molina  
Fecha de Ingreso: enero-2002
Ubicación: USA
Mensajes: 768
Antigüedad: 23 años, 4 meses
Puntos: 1
Señores.

Efectivamente era el Norton. Desactive la opción de Validar Script. Y todo funciono correctamente.

Muchas Gracias
__________________
José Molina
La marginalidad no esta en la incapacidad de calmar el hambre de un estómago sino en la incapacidad de calmar el hambre de la mente.
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 12:10.