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
  #21  
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
Exacto, tiene mucho sentido porque el ZConnection esta conectado a la BD Hola,
y dentro hay una tabla prueba, pero me sigue dando el mismo error, asi quedo

Código Delphi [-]
procedure TForm7.Button4Click(Sender: TObject);
begin
  ZQuery1.Close;
  ZQuery1.SQL.Text:='Attach Database "F:\Mundo.sqlite" as Mundo';
  ZQuery1.ExecSQL;
  ZQuery1.SQL.Text:='Insert Into Mundo.Prueba (Select * From Prueba)';
  ZQuery1.ExecSQL;
end;
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.
Responder Con Cita
  #22  
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
Quita esos paréntesis alrededor del select.

// Saludos
Responder Con Cita
  #23  
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
Quedo perfecto, gracias infinitas amigo Roman,

asi quedo: para copiar de una base de datos a otra,

Código Delphi [-]
procedure TForm7.Button4Click(Sender: TObject);
begin
  ZQuery1.Close;
  ZQuery1.SQL.Text:='Attach Database "F:\Mundo.sqlite" as Mundo';
  ZQuery1.ExecSQL;
  ZQuery1.SQL.Text:='Insert Into Mundo.Prueba Select * From Prueba';
  ZQuery1.ExecSQL;
end;

pero eso es solo para hacerlo una vez,
ya que cuando le vuelves a dar, te da un error,
la base de datos Mundo ya esta en uso:

Cita:
'SQL Error: database Mundo is already in use'.
como se puede validar para saber si esta o no en uso?
entonces asi evitar el attach nuevamente?

Gracias
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.
Responder Con Cita
  #24  
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
Bueeeno, pero es que no está accesible la ayuda desde tu IP?

Código Delphi [-]
ZQuery1.SQL.Text := 'pragma database_list';
ZQuery1.Open;

if not ZQuery1.Locate('name', 'Mundo', []) then
begin
  ZQuery1.SQL.Text := 'attach database "F:\Mundo.sqlite" as Mundo';
  ZQuery1.ExecSQL;
end;

// Saludos
Responder Con Cita
  #25  
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
Excelente Roman,

si tengo acceso a esa ayuda pero te confieso,
leer eso es como leer chino con aleman,
entiendo ingles pero eso es un lenguaje muy tecnico y me confunde bastante,
tampoco se mucho como buscar alli, nunca me imagine que con Pragma podria hacer eso,

al final quedo asi, para quien pueda servir
copiar de una base de datos a otra usando SQLite y Zeos en Delphi
Código Delphi [-]
procedure TForm7.Button4Click(Sender: TObject);
begin
  ZQuery1.SQL.Text := 'Pragma DataBase_List';//Cargo la lista de bases de datos añadidas
  ZQuery1.Open;
  if not ZQuery1.Locate('Name', 'Mundo', []) then//sino consigue la BD que necesito entonces la agrega
    begin
      ZQuery1.Close;
      ZQuery1.SQL.Text:='Attach Database "F:\Mundo.sqlite" as Mundo';
      ZQuery1.ExecSQL;
    end;
  ZQuery1.SQL.Text:='Insert Into Mundo.Prueba Select * From Prueba';//luego inserto la informacion de una a otra BD y listo el pollo!
  ZQuery1.ExecSQL;
end;

Gracias a todos por sus aportes esto me fue realmente util como todo
Saludos
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.
Responder Con Cita
  #26  
Antiguo 06-12-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,

Hoy volvi a tener este mismo problema,
y lo resolvi asi:

Código Delphi [-]
  //Agregamos la BDT
  ZQuery3.Close;
  ZQuery3.SQL.Text:='Attach Database "'+GetCurrentDir()+'\BD\BDLGST.lum" as BDLGST';
  ZQuery3.ExecSQL;

  //Copiamos de la BDT a BDG
  ZQuery3.Close;
  ZQuery3.SQL.Text:='Insert Into RelacionUnidades Select * From BDLGST.RelacionUnidades';
  ZQuery3.ExecSQL;

Solo queria comentarlo quiza a alguien le sirva
__________________
El Conocimiento se puede compartir, pero la Experiencia es totalmente Intransferible.
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 21:11:45.


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