Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No sé si sqlite lo permite, algunas bases de datos sí, el trabajar con ambas a la vez, algo así como:
Código SQL [-]
insert into base2.tablaA (select * from base1.tablaA)

La forma clásica es lo que ha explicado Caral, tener 2 conexiones: (resumiendo mucho):

Código Delphi [-]
base1.open;
while not base1.eof do
begin
  insert into base2 values (base1.campo1, base1.campo2, base1.campo3);
  base2.post;
  base1.next;
end;
Responder Con Cita
  #2  
Antiguo 07-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por Casimiro Notevi Ver Mensaje
No sé si sqlite lo permite, algunas bases de datos sí, el trabajar con ambas a la vez, algo así como:
Código SQL [-]
insert into base2.tablaA (select * from base1.tablaA)
Sí lo permite, pero primero hay que "importar" la segunda base:

Código SQL [-]
attach database "\ruta\a\la\base2.db" as base2

// Saludos
Responder Con Cita
  #3  
Antiguo 08-09-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 12
martini002 Va por buen camino
Hoy me fui LEJOS donde no existiera la energia electrica, (Amazonia Venezolana)
y apuesto que muchos de nosotros quisiera irse, pero tan solo por un momento
porque seria una pena evitar recibir un halago como este que recibi cuando llegue:
"Martin, le vas a quitar el trabajo a los Administradores", aunque se que no sera verdad,
y menos yo; No porque menos-precie mi ezfuerzo o el de ustedes amigos mios,
sino que por tan solo; por AHORA no pasara, y solo nosotros sabemos porque,
y por tanto no respondi a este mensaje aunque hallan llegado muchas notificaciones,

me gustaria opinar sin aun probarlo, (aunque lo probare a primera hora)
Roman! Tienes toda la razon, me faltaba conocer esa sentencia,
donde importaras a memoria (Supongo yo!) toda la tabla,
y luego la manejaras a tu antojo, pues es lo que mas logica y sentido comun
puede tener, aunque no menos que las otras opiniones, pero si creo yo,
que absurdo seria no tener este problema en cuenta,
Importar una BD a Otra? despues de tantos años de investigacion sobre el asunto?
no creo que vallamos nosotros a inventar como hacerla, no se si me siguen,
pero bueno, no queria dejar este momento para escribirles.

A primera hora estare haciendo las pruebas correspondientes!
como buen curioso e informatico caprichoso

Gracias Roman y a todos
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.
Responder Con Cita
  #4  
Antiguo 08-09-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 12
ElMug Va por buen camino
En SQLite3 es facil.

Attach, como explico Roman, y usa el DUMP de la BD-1 a un archivo DumpX. Luego todo el archivo DumpX (que son comandos SQL en texto comun) lo aplicas a la BD-2. Esto te crea la tabla y seguidamente le carga los datos.

En estos Dumps puedes inclusive pasar TODA una base de datos a otra.

Sin embargo, con SQLite3, puede siempre usarse una base de datos que este "attached" como si ya fuera solo una. Ese principio aumenta la capacidad de multiaccesos para escribir: procesos escribiendo en BD-1 no bloquean BD-2, pues son archivos fisicamente independientes.
Responder Con Cita
  #5  
Antiguo 10-09-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 12
martini002 Va por buen camino
Saludos,

Estuve haciendo unas pruebas, pero no se me ocurre mas nada,
y aun no he podido encontrar algun ejemplo de alguien que lo halla hecho antes
miren lo que he estado haciendo, al parecer importa la BD correctamente,
porque no me da ningun error, y de paso estoy viendo cual es la base de datos conectada
actualmente, lo que me muestra que SI esta conectada la numero 1 (Hola)
pero cuando entra al proceso de copiar los datos entonces da un error,
ya las dos estan creadas, lo hice con una misma conexion,
aun no he intentado con dos, pero creo que no hace falta,
por lo menos no hasta este paso, pues las crea correctamente
que creen que pueda estar fallando aqui?

Gracias

Código Delphi [-]
procedure TForm7.Button4Click(Sender: TObject);
var
a:string;
begin
  ZQuery1.Close;
  ZQuery1.SQL.Text:='Attach Database "F:\Mundo.sqlite" as Mundo';
  ZQuery1.Open;
  ZQuery1.Close;
  A:=ZConnection1.Database;
  ShowMessage(a);//Esto muestra: F:\Hola.sqlite
  ZQuery1.SQL.Text:='Insert Into Mundo.Prueba (Select * From Hola.Prueba)';//Aqui da el error de Missing Database o una sentencia incorrecta.
  ZQuery1.Open;
end;
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.
Responder Con Cita
  #6  
Antiguo 11-09-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.044
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por martini002 Ver Mensaje
pero cuando entra al proceso de copiar los datos entonces da un error,
Hombre, si quieres que alguien que sepa del tema te ayuda... no hagas que tenga que adivinar el error
Responder Con Cita
  #7  
Antiguo 11-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Y, ¿ZQuery está conectado a ZConnection?

// Saludos
Responder Con Cita
  #8  
Antiguo 11-09-2012
Avatar de martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 12
martini002 Va por buen camino
Casimiro eso lo se, el error esta expresado en el codigo

Código Delphi [-]
ZQuery1.SQL.Text:='Insert Into Mundo.Prueba (Select * From Hola.Prueba)';//Aqui da el error de Missing Database o una sentencia incorrecta.

Si Roman, esta conectado el ZQuery1 al ZConnection1
Gracias
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.
Responder Con Cita
  #9  
Antiguo 11-09-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por martini002 Ver Mensaje
Código Delphi [-]
procedure TForm7.Button4Click(Sender: TObject);
var
a:string;
begin
  ZQuery1.Close;
  ZQuery1.SQL.Text:='Attach Database "F:\Mundo.sqlite" as Mundo';
  ZQuery1.Open;
  ZQuery1.Close;
  A:=ZConnection1.Database;
  ShowMessage(a);//Esto muestra: F:\Hola.sqlite
  ZQuery1.SQL.Text:='Insert Into Mundo.Prueba (Select * From Hola.Prueba)';//Aqui da el error de Missing Database o una sentencia incorrecta.
  ZQuery1.Open;
end;
Yo puedo hacer esto sin problemas:

Código Delphi [-]
ZQuery1.SQL.Text := 'attach database "\ruta\a\la\base2.db" as base2';
ZQuery1.ExecSQL;

ZQuery1.SQL.Text := 'insert into base2.tablaA (select * from base1.tablaA)';
ZQuery1.ExecSQL;

Pero claro, si pongo Open en lugar de ExecSQL, obtengo errores

// Saludos
Responder Con Cita
  #10  
Antiguo 11-09-2012
ElMug ElMug is offline
Miembro
NULL
 
Registrado: jul 2012
Posts: 163
Poder: 12
ElMug Va por buen camino
Si. Gracias Roman.

A esto me referia, mas sin detalles, por no ser usuario de los Zeos.
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
Insertar datos entre bases de datos diferentes franjero Firebird e Interbase 1 19-06-2012 08:32:42
Pasaje de datos entre bases de datos Mauro Daniel Conexión con bases de datos 1 04-05-2008 15:28:24
Operaciones entre bases de datos subzero MS SQL Server 3 17-01-2008 21:55:57
Enlaces entre Bases de Datos!! Chik_Electronik C++ Builder 3 01-06-2006 05:00:37
conexión entre distintas bases de datos jsanchez Firebird e Interbase 1 09-03-2004 22:35:22


La franja horaria es GMT +2. Ahora son las 04:54:56.


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