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

importar en base de datos un archivo .txt o .schema

Estas en el tema de importar en base de datos un archivo .txt o .schema en el foro de Java en Foros del Web. HOla, mi problema es el siguiente. Veréis, con TextDataFile genero un archivo .txt y uno .schema con todos los registros de una tabla. ahora bien: ...
  #1 (permalink)  
Antiguo 08/02/2006, 06:48
 
Fecha de Ingreso: febrero-2006
Mensajes: 3
Antigüedad: 18 años, 2 meses
Puntos: 0
importar en base de datos un archivo .txt o .schema

HOla, mi problema es el siguiente. Veréis, con TextDataFile genero un archivo .txt y uno .schema con todos los registros de una tabla. ahora bien:
¿COMO PUEDO IMPORTAR EN MI BASE DE DATOS, MEDIANTE COMANDOS (herramientas NO) este archivo en otra tabla igual pero vacía?¿se puede importar mediante comandos?
Gracias, un saludo
  #2 (permalink)  
Antiguo 08/02/2006, 16:26
Avatar de Mephisto  
Fecha de Ingreso: enero-2006
Ubicación: Mexico DF
Mensajes: 184
Antigüedad: 18 años, 4 meses
Puntos: 3
Puedes generar una conexion a la BD y mediante la ejecucion de comandos SQL realizar la carga.

CREATE TABLE para la creacion de una tabla
BULK INSERT para la carga de la informacion a la tabla desde un archivo
__________________
Saludos...

Todos somos sabios, solo que en diferentes disciplinas...
  #3 (permalink)  
Antiguo 09/02/2006, 02:44
 
Fecha de Ingreso: febrero-2006
Mensajes: 3
Antigüedad: 18 años, 2 meses
Puntos: 0
grcias

al final lo hice de la siguiente forma, y lo pongo por si a alguien más le sirve.
1º.- Creo una conexión a la base de datos con el metodo setConection de la clase Database();
2º.- Después creo un querydataset y ejecuto con querydataset.setQuery() y los resultado los guardo en un textDataFile es decir, enun fichero de texto.
3º.- en este fichero, se me quedan todos los datos de la tabla que haya seleccionado separados por tabuladores, lo cual, permite a cualquier gestor de base de datos importarlo con facilidad.
No obstante, si se desea hacer mediante comandos, como requería mi pregunta, se tiene que abrir el fichero, recorrerlo linea por linea y e ir añadiendo a caada línea INSERT INTO tabla VALUES (lineas recogidas del fichero).

Un saludo,
Juan

PD: en el archivo, cada línea va delimitada por un cuadrado.
  #4 (permalink)  
Antiguo 16/02/2006, 04:12
 
Fecha de Ingreso: febrero-2006
Mensajes: 3
Antigüedad: 18 años, 2 meses
Puntos: 0
solucionado

¡¡solucionado!!

aquí os dejo el código por si alguna vez a alguien le resulta útil.
Este proceso se utiliza para migrar de una base de datos a otra,pero OJO, sólo los datos de la tabla. Hacemos lo siguiente:
1º.- Nos conectamos a la base de datos de origen con un objeto database

db.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor("b d","usuario","clave");

2º.- Creamos la conexión a la base de datos destino con un objeto database
db2.setConnection(new com.borland.dx.sql.dataset.ConnectionDescriptor( "bdDestino","usuario","clave");

3º.- Ejecutamos sentencias para recoger datos de las tablas y las almacenamos en un objeto querydataset.
qds.setQuery(new com.borland.dx.sql.dataset.QueryDescriptor(db,"sel ect * from tabla", null, true, Load.ALL));

4º.- Creamos un objeto TExtdatafile y le ponemos la propiedad LoadAsInserted a true. Esto hace que todo lo que haya en el fichero se inserte.
TextDataFile tdf = new TextDataFile();
tdf.setLoadAsInserted(true);

5º.- Guardamos el query data set con los resultado obtenidos en el objeto textdatafile.Esto generará un archivo txt conlos datos y un archivo .schema con la estructura de la tabla:
tdf.save(qds);

6.- A continuación creamos otro objeto querydata set y cargamos en él el fichero que hemos creado:
qds2.setDataFile(tdf);

7.- Después, guardamos los cambios en la bd destino, mediante la conexión bd destino que creamos al principio
db1.saveChanges(qds);

8.- Por últmo cerramos los querydataset y demás objetos que se puedadn cerrar.

ya está
saludos

PD: En la explicación he omitido como se crean los objetos y las importaciones necesarias, pero vamos, eso se saca fácil
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 19:52.