ASP - Cargar un archivo TXT a Acces

 
Vista:

Cargar un archivo TXT a Acces

Publicado por Ernesto (9 intervenciones) el 13/06/2005 17:10:47
Buenos dias, necesito que alguien me ayude acerca de como hago para cargar un archivo plano (TXT) a una base de datos acces. Ambos están alojados en mi servidor.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Cargar un archivo TXT a Acces

Publicado por Juan_K (22 intervenciones) el 13/06/2005 22:05:19
Te rogaria q fueras mas especifico acerca de lo q deseas hacer exactamente.Lo q deseas es pasar este txt como una tabla o pasar su contenido como registros de una tabla ya existente dentro de tu base de Datos, deseas hacer esto mediante una pagina ASP??
Te envio este codigo q crea una nueva tabla en tu BD acccess apartir de tu TXT suponiendo q tu Base de datos Access es MiBD.mdb y tu archivo de texto es BD.txt
<%

filePath = Server.MapPath("MiBD.mdb")
set Con = Server.createObject("ADODB.Connection")
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & filePath
'introducimos el Archivo .Txt como una nueva tabla llamada asi "NUEVA_TABLA" ; )
Con.Execute "SELECT * INTO NUEVA_TABLA FROM [Text;HDR=YES;FMT=Delimited;" & _
"Database=" & Server.MapPath(".") & "].[BD.txt]"

%>
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cargar un archivo TXT a Acces

Publicado por Ernesto Márquez (9 intervenciones) el 14/06/2005 16:56:37
realmente lo que quiero hacer es cargar un archivo plano, registro a registro, a varias tablas que tengo en una base de datos acces, y lo quiero hacer con una página ASP, tanto el TXT como la BD estan en el mismo directorio
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cargar un archivo TXT a Acces

Publicado por Juan_K (22 intervenciones) el 14/06/2005 22:39:19
Es que me das la informacion a cuenta gotas. aver si me mandas un ejemplo de tu fichero TXT, aque tablas queres llevar q datos, cuantas tablas son.....
cuanto mas especifico seas mejor te podre ayudar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cargar un archivo TXT a Acces

Publicado por Ernesto Márquez (9 intervenciones) el 14/06/2005 23:04:20
ok, fijate, supongamos que el txt tenga la siguiente estructura:

1000001ERNESTO MARQUEZ 200599
1000002PEDRO PEREZ 200599

Y quisiera cargarlo en una tabla de acces, supongamos que se llame CLIENTES.
Esto bajo la estructura siguiente:

las 7 primeras posiciones al primer campo de la tabla llamado ID_CLIENTE
las 21 siguientes posiciones seria NOMBRE
las 4 siguientes FECHA
las dos ultimas serian STATUS

yo lo he estado trabajando con el objTEXTSTREAM, pero hay algunas cosas que aun no puedo manejar.... te muestro parte del codigo que he realizado:

<%
Dim objFSO
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")
Dim objTextStream
const strNombreArchivo = "C:\...\...\...\CLIENTES.txt"
const fsoLectura = 1
If objFSO.FileExists(strNombreArchivo) then
Set objTextStream = objFSO.OpenTextFile(strNombreArchivo, fsoLectura)
'aqui empiezo a leer campo a campo y asigno a variables
'Do while not objTextStream.EOF
variable = objTextStream.Read(7)
variable2 = objTextStream.Read(21)
variable3 = objTextStream.Read(4)
variable4 = objTextStream.Read(2)
'loop
objTextStream.Close
Set objTextStream = Nothing
Else
Response.Write strFileName & " No se ha encontrado"
End If
Set objFSO = Nothing
%>
<%end if%>

El primer problema que presento es que el LOOP, mira que esta comentado, cuando lo ejecuto me da como respuesta que ese objeto no acepta EOF, entonces solo puedo leer la primera linea... lo otro es que luego que tengo las variables en teoria ya deberia ir guardando campo a campo en la tabla... pero eso aun no me ha dado chance de hacerlo...

Examina el codigo a ver que te parece...

Mil gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cargar un archivo TXT a Acces

Publicado por Juan_K (22 intervenciones) el 15/06/2005 04:27:38
Hola otra vez aqui te envio un codigo con el q podras extraer los datos de tu TXT y almacenarlos en un array lo cual creo te facilitara el pasarlos luego a las tablas.
viendo los datos q me mandastes he hecho lo siguiente, suponiendo que tienes codigo nombres y fecha solo esos tres
_______________________
Codigo nombres fecha
1000001ERNESTO MARQUEZ 2005
1000002PEDRO PEREZ 2005

al final los datos quedaran en unarray de esta maneera, o algo asi ;-)

| 0 | 1 | 2
----------------------------------------------------
0 |1000001|ERNESTO MARQUEZ|2005|
1 |1000002|PEDRO PEREZ |2005 |
2 |

===================================================================
Dim FSO
Dim objTextStream
const strNombreArchivo = "C:\data\clientes.txt"
const fsoLectura = 1
Set FSO = Server.CreateObject("Scripting.FileSystemObject")
If (FSO.FileExists(strNombreArchivo)) then
Set objTextStream = FSO.OpenTextFile(strNombreArchivo, fsoLectura)
Dim sTmp
sTmp=objTextStream.Readall() 'Leemos todo el fichero y lo almacenamos
'Creamos un Array apartir de los datos almacenamos
TmpArray=Split(sTmp,VBcrlf)
reDim TAbla(UBound(TmpArray),3) 'Array para Almacenar los Datos Tipo tabla
For i = LBound(TmpArray) To UBound(TmpArray)
TAbla(i,0) = Mid(TmpArray(i), 1, 7) 'Extraemos los Codigos
TAbla(i,1) = Mid(TmpArray(i), 8, 21) 'Extraemos los Nombres
TAbla(i,2) = Mid(TmpArray(i), 29) 'Extraemos el Telefono
Next
objTextStream.Close
Set objTextStream = Nothing
Else
response.Write strFileName & " No se ha encontrado"
End If
===================================================================
Espero te Sirva Chao.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cargar un archivo TXT a Acces

Publicado por Ernesto Márquez (9 intervenciones) el 15/06/2005 18:48:45
De verdad que mil gracias, ya logré montarlo en el Array todo mi archivo, ahora en lo que estoy es en guardarlo en la tabla de mi BD, pero esa es otra historia... muchisimas gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cargar un archivo TXT a Acces

Publicado por Juan_K (22 intervenciones) el 15/06/2005 21:57:33
Ok, si necesitas alguna ayuda con las tablas aqui estoy.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cargar un archivo TXT a Acces

Publicado por Ernesto Marquez (9 intervenciones) el 15/06/2005 22:03:30
Muchas gracias por todo el apoyo Juan-K, ya también logré pasarlo a la tabla como quería...
Otra cosa, tienes alguna idea de por que este codigo no lo puedo correr en el IIS, cuando lo ejecuto se queda la pagina como colgada y nunca da respuesta, todas las pruebas que he hecho han sido en mi servidor en Internet... pero te podras imaginar cuanto tiempo me hubiera podido ahorrar...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cargar un archivo TXT a Acces

Publicado por Juan_K (22 intervenciones) el 16/06/2005 00:38:25
Ese problema es causado generalmente por el antivirus, el cual bloquea los llamados al FSO.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cargar un archivo TXT a Acces

Publicado por Ernesto Marquez (9 intervenciones) el 23/06/2005 22:59:51
Pana, el codigo lo probé y funcionó perfecto, con 80 registros, pero ahora que tengo que usar el archivo real, que son cerca de 15 mil registros me dice el siguiente error: "Out of memory "... tienes alguna idea de que puede pasar? sera que no puede manejar esa cantidad de registros?

Gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Cargar un archivo TXT a Acces

Publicado por jaume (1 intervención) el 14/12/2007 11:55:23
Hola Juan_K

Me ha sido de mucha ayuda este código, pero tengo un gran problema, te cuento.

Mi txt tiene una estructura parecida a esta:

"IdArticulo";"precioEuro";
123456;759.08;

Al ejecutar el codigo anterior, me crea la tabla dentro de mi mdb con los dos campos IdArticulo y precioEuro y en una primera linia los valores del ejemplo...

Cabe decir que mi mdb está en blanco, no existiendo ninguna tabla previa a la importaciones del TXT.

El problema viene que los decimales del 759.08 se los come, y me inserta el valor sin la coma o punto: 75908 con lo que algo que debería tener un coste de 759€ pasa a costar 75908€.

El tipo de datos de esos dos campos me lo ha creado como Numero.

Hay algún método para que me respete los decimales? O bien de escoger el tipo de datos de cada campo???

Muchas Gracias!!!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar