Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   insercion masiva (https://www.clubdelphi.com/foros/showthread.php?t=61559)

Alfredo 12-11-2008 17:33:59

insercion masiva
 
Hola a todos,
Con Firebird 1.5
delphi 7

Hace algun tiempo la siguinte informacion para pasar datos aun una nueva base de datos:


"Los que trabajamos en el mundo complejo de las bases de datos, en algún momento nos hemos enfrentado al problema de migrar una gran cantidad de información hacia nuestra base de datos (normalmente en un formato diferente).

He aquí un ejemplo de como hacerlo:

Deberá de colocar dos componentes database, uno de ellos deberá de estar configurado para acceder a las tablas destino (propiedad DataBaseName = dbDestino). El otro deberá de estar configurado para acceder a las tablas de origen (propiedad DataBaseName = dbOrigen).

Después coloca un componente TQuery, y deja vacia la propiedad "DatabaseName"; En la propiedad SQL coloca un código parecido al siguiente:

Insert into ":dbDestino:TablaDestino" (CampoDestino1,CampoDestino2)
Select CampoOrigen1,CampoOrigen2
From ":dbOrigen:TablaOrigen"

Después solo ejecuta la instrucción
"Query1.ExecSql". Y listo.

Hagan una prueba y se sorprenderan de los resultados. "

Realmente no se quien fue que lo escribio, pero se lo agradezco mucho...

El caso es que quiero hacerlo nuevamente pero no quiero usar BDE sino componentes IBX, y he tratado de todo lo que se me ocurre y nada....

Alguien a tenido exito con inserciones masivas entre bases de datos mediante algun procedimiento similar?

Tratando de reproducir el fenomeno con los ibx me da errores de que falta asignar la transaccion, o la base de datos a la transaccion o que no esta soportada la operacion, ......
.....en fin la idea es: Tengo una base de datos corriendo perfectamente y quiero hacer un respaldo "por codigo" de un subconjunto de datos. Creo por codigo otra base de datos y dentro de ella unas tablas con la misma estructura de la base Origen. Hasta aqui todo bien. Pero no logro llenar la base destino.....

Si alguien tien una idea, estare agradecido,:confused:

RolphyReyes 12-11-2008 17:44:20

Un tip
 
Saludos.

Si es para hacer un proceso de migración de datos te sugiero utilizar el DataPump que viene con la instalación de D7, o bajar el IbExpert y a su vez el plug-in DataPump.

Ahora con IBX necesitas enlazarle los componentes de IbDataBase e IbTransaction.

Alfredo 12-11-2008 19:56:38

Gracias Rolphy,
Como correctamente comentas he usado exitosamente esas herramientas, pero en este caso en particular el requerimiento es sacar un sub conjunto de la data, especificamente la informacion referente a un año, de modo que el mismo sistema maneje ese sub conjunto como si se tratara de toda la base de datos. Si fuera un caso puntual no habria problema en sacarlo, es facil como comentas, pero sera un proceso repetitivo y se debe mecanizar.

En este mismo momento voy a intentar copiar la base con otro nombre, conectarme y mediante una sentencia eliminar lo que necesito...

Saludos

Kipow 12-11-2008 20:34:46

Cuando haces eso que quieres de dejar solo cierta info en la nueva BD yo prefiero eliminar y luego hacer backup/restores de la base nueva.


La franja horaria es GMT +2. Ahora son las 21:24:57.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi