Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-12-2006
oscjae oscjae is offline
Miembro
 
Registrado: may 2005
Posts: 70
Poder: 19
oscjae Va por buen camino
Insercion masiva de una BD a otra BD

Wenas a to2, he visto un hilo al respecto de la pregunta que voy a hacer, pero no lo veo claro, he hecho pruebas y nada.
Mi pregunta es como tengo que hacer la sentencia SQL para insertar los registros de una tabla "Tabla1" a una tabla identica "Tabla1", pero de otra base de datos, trabajo en Firebird 1.5, delphi 7 y fibPlus.

He visto en ese hilo el ejemplo siguiente

Código SQL [-]
insert into ":BDDestino:Tabla1" Campo1,Campo2
select Campo1,Campo2 from ":BDOrigen:Tabla1"





Lo he intantado pero nada, decia que tenia que usar un componente Query, pero que no estuviera conectado a ninguna BD, y me da el error tipico que no tiene Database asiganda, si me pudieran mostrar un ejemplo lo tendria mucho mas claro

Gracias.
Responder Con Cita
  #2  
Antiguo 14-12-2006
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
No se bien si se puede hacer asi en Firebird pero debe poderse:

Código SQL [-]
INSERT INTO bddestino.tabla SELECT * FROM bdorigen.tabla

Te recomiendo "MySQL Cookbok" que aunque es para MySQL trae muchas recetas que funcionan en cualquier gestor que use SQL. Trae ejemplos prácticos como el que planteas.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #3  
Antiguo 14-12-2006
oscjae oscjae is offline
Miembro
 
Registrado: may 2005
Posts: 70
Poder: 19
oscjae Va por buen camino
Gracias por la respuesta AzidRain, pero el ejemplo que me has dado, lo de "bdorigen", a que te refieres, al nombre del componente de base de datos, o a una cadena de texto que contenga la direccion de la base de datos??
Responder Con Cita
  #4  
Antiguo 14-12-2006
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
No

Se refiere al nombre que tenga tu base de datos en Firebird.

Es decir, supongamos que tienes una base de datos que se llame "Matriz" y otra que se llame "Sucursal"...quieres copiar todos los registros de la tabla "Clientes" de la MAtriz a Sucursal.

Entonces
Código SQL [-]
insert into Sucursal.clientes select * from Matriz.clientes

Esta instruccion se debe poner dentro del query y es muy independiente de los componentes que uses en Delphi. Se debe escribir tal cual sea el nombre que le hayas dado a tus bases de datos y las tablas que quieras copiar
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #5  
Antiguo 15-12-2006
oscjae oscjae is offline
Miembro
 
Registrado: may 2005
Posts: 70
Poder: 19
oscjae Va por buen camino
Te pongo un ejemplo:

Tengo dos bases de datos

"C:\Bases de datos\Datos 1\BDGestion1.fdb"
"C:\Bases de datos\Datos 2\BDGestion2.fdb"

Lo que quiero hacer es un traspaso de datos masivo de una tabla que se llama "Tabla1", las dos bases de datos son identicas, me refiero a su estructura, claro
Tengo un componente Query, al que se supone que no le debo dar ninguna base de datos en la propiedad DataBase, ahora inserto la sentencia, segun lo que me has dicho seria: (Aqui mi duda)

Código SQL [-]
insert into BDGestion2.Tabla1 select * from BDGestion1.Tabla1

es así??, porque me da error, por lo pronto el error que me da es que no se puede ejecutar la sentencia porque el query no tiene asignada ninguna base de datos, de todas formas, creo que la sentencia tampoco esta bien, si te refieres al nombre del archivo cuando hay que poner la base de datos seguido de la tabla, porque como sabe en que direccion esta la base de datos??, no se si te refieres al componente de base de datos que haya puesto en el formulario que conecte con la base de datos, de todas formas me da el error que nates te he comentado.

Gracias por tu ayuda.
Responder Con Cita
  #6  
Antiguo 15-12-2006
Avatar de rastafarey
rastafarey rastafarey is offline
Miembro
 
Registrado: nov 2003
Posts: 927
Poder: 21
rastafarey Va por buen camino
Resp

Eso que dicen no se puede hacer pero si lo peden hacer d eun amenra muy facil.

Puden hacer lo suiente hacen una exportacion de lo sdatos como sentencias de insercion y lo ejecutas sobre la base d edatos destino como un script para qu ese ejecute de un solo dolo.

Si la base de datos tienen el mismo formato simplente. Creas un bakup y haces un restore el la be destino.

Y la ultima que siempre funciona ve haciendo lo que te dice en la primera opcion para cada tabla y listo.

Te pongo un ejemplo para que no me digan que no les explique bien

Tienes T1: en la bd origien
con los campo s c1, c2 ,c3

C1 | C2 | C3
================
v1.1 | v1.2 | v1.3
---------------------
v2.1 | v2.2 | v2.3
---------------------

y tiene TD: ne la bddestino
con lo scampos
A1, A2

Para mi ejemplo c1=A1 y C2+C3(concatenado no sumado) = A2

Entonces arias lo siguente

Código SQL [-]
Select 'Insert into TD(A1, A2) Values(''' || C1 || ''', ''' || C2 || C3 ''');' from T1;

Esto Devolvera algo como

Insert into TD(A1, A2) Values('v1.1',  'v1.2v1.3');
Insert into TD(A1, A2) Values('v2.1',  'v2.2v2.3');

Como te puedes dar cuaenta ya tienes la data lista para exportarla solo debes copiar y pegar y ejecutarla como script.
__________________
Todo se puede, que no exista la tecnología aun, es otra cosa.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Modificacion masiva Spynosa Firebird e Interbase 7 07-10-2010 06:06:05
Seleccionar registros en una tabla, envio, e insercion en otra tabla!! EfrainSanmiguel Conexión con bases de datos 3 21-10-2004 01:12:43
Insercion masiva de registros MUY LENTA Balda Firebird e Interbase 10 24-03-2004 21:40:21
Exportación masiva de tablas Oracle ramiretor Conexión con bases de datos 4 18-03-2004 04:54:46
Inserción masiva en MySQL Morfo MySQL 3 09-01-2004 18:05:33


La franja horaria es GMT +2. Ahora son las 21:01:42.


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
Copyright 1996-2007 Club Delphi