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 martini002
martini002 martini002 is offline
Miembro
 
Registrado: may 2012
Ubicación: Puerto Ordaz - Venezuela
Posts: 175
Poder: 12
martini002 Va por buen camino
Copiar datos entre Bases de Datos

Saludos Amigos, donde quiera que se encuentren,
tengo un problemita con una situacion, quiza a ustedes les ha pasado anteriormente,
quisiera copiar los datos de una BD a otra, pero en el ultimo paso me quedo trancado,
y no tengo idea de que pudiera hacer, he estado buscando pero no encuentro algo que me ayude,
les muestro lo que he hecho,

Gracias Infinitas por su tiempo y su ayuda

Código Delphi [-]

//Creamos la nueva base de datos desde cero y luego agregamos un par de datos.

procedure TForm7.Button1Click(Sender: TObject);
Var
  User, Pass:String;
begin
  with ZConnection1 do
    try
      if ZConnection1.Connect=True then
        begin
          Disconnect;
        end;
      DataBase:='F:\Hola.sqlite';
      Protocol:='sqlite';
      Properties.Add('CreateNewDatabase= CREATE DATABASE '+QuotedStr('F:\Hola.sqlite')+''); 
      Properties.Add(' User '+QuotedStr(User)+' PASSWORD '+QuotedStr(Pass)+' PAGE_SIZE 4096 DEFAULT CHARACTER SET ISO8859_1');
    finally
      Connect;
    end;
  With ZQuery1 Do
    try
      Close;
      SQL.Text:='CREATE TABLE Prueba (Codigo Integer, Nombre Char(20))';
    finally
      Open;
    end;
end;

procedure TForm7.Button2Click(Sender: TObject);
begin
  With ZQuery1 Do
    try
      Close;
      SQL.Text:='Insert Into Hola Values(1, '+QuotedStr('Martin')+')';
    finally
      ExecSQL
    end;
end;

Código Delphi [-]
//Luego creamos la segunda base de datos, y aqui es donde viene la cuestion
//al final quiero pasar los datos de la tabla de arriba para esta, cuando presione el boton 4
//Alguna idea?

procedure TForm7.Button3Click(Sender: TObject);
Var
  User, Pass:String;
begin
  with ZConnection1 do
    try
      if ZConnection1.Connect=True then
        begin
          Disconnect;
        end;
      DataBase:='F:\Mundo.sqlite';
      Protocol:='sqlite';
      Properties.Add('CreateNewDatabase= CREATE DATABASE '+QuotedStr('F:\Mundo.sqlite')+''); 

      Properties.Add(' User '+QuotedStr(User)+' PASSWORD '+QuotedStr(Pass)+' PAGE_SIZE 4096 DEFAULT CHARACTER SET ISO8859_1');
    finally
      Connect;
    end;
  With ZQuery1 Do
    try
      Close;
      SQL.Text:='CREATE TABLE Mundo (Codigo Integer, Nombre Char(20))';
    finally
      Open;
    end;
end;

procedure TForm7.Button4Click(Sender: TObject);
begin
  if ZConnection1.Connect=True then
    begin
      ZConnection1.Disconnect;
    end;
  ZConnection1.DataBase:='F:\Hola.sqlite';
  ZConnection1.Protocol:='sqlite';
  ZConnection1.Connect:=True;
  ZQuery1.Close;
  ZQuery1.SQL.Text:='Select * From Hola';
  ZQuery1.Open;
end;
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.
Responder Con Cita
  #2  
Antiguo 07-09-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Nunca lo he hecho pero me parece que tienes que:
1- tener dos conexiones diferentes para cada BD.
2-Mantener las conexiones activas
3-Que las tablas y campos sean iguales
4-Hacer un recorrido de la tabla que quieras copiar.
5-Hacer un update a la tabla nueva haciendo un recorrido del query de la primera tabla.
no me hagas mucho caso, solo opino.
saludos
__________________
Siempre Novato
Responder Con Cita
  #3  
Antiguo 07-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
Hola Caral,
eso lo he pensado,
pero ahora la cuestion es como?
ok podria usar dos conexiones, pero como leo de un Query a otro?
Gracias
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.
Responder Con Cita
  #4  
Antiguo 07-09-2012
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola
Me imagino que igual que si usaras una sola conexión, no creo que sea diferente.
No lo he hecho nunca amigo, solo me imagino.
Saludos
__________________
Siempre Novato
Responder Con Cita
  #5  
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.039
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
  #6  
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
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 10:16:51.


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