Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-10-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Como cruzar dos bases de datos en Builder?

Buenas Tardes amigos, estoy en un aprieto....
Necesito mezclar dos bases de datos. Existe algun método para ello?
El problema es las dos bases de datos contienen las mismas tablas y campos, solo necesito insertar los datos de una en la otra.....
Si alguien pueda ayudarme le agradeceré mucho.
Responder Con Cita
  #2  
Antiguo 26-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
en pseudocodigo:

Código:
  QueryOrigen.database = base1;
  QueryDestino.database = base2;
  QueryOrigen.open;
  QueryDestino.open;
  while not QueryOrigen.eof do
  begin
    QueryDestino.InsertRecord([QueryOrigen.Campo1.Value,
      QueryOrigen.Campo2.Value]); 
    Query1Origen.next;
  end;
  Base2.Commit;
Esto es a grosso modo, pero te da la idea.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #3  
Antiguo 26-10-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Puedes probar con alguna de las aplicaciones de DataPump que existen; Delphi trae una y puedes encontrar algunas otras por Internet. La duda que tengo es el comportamiento que tienen ante posibles colisiones de los datos, así que no se si te será útil, pero por probar...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #4  
Antiguo 26-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por Neftali
Puedes probar con alguna de las aplicaciones de DataPump que existen; Delphi trae una (...)
C++ Builder 6 también cuenta con ella.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 26-10-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Gracias pero una preguntas.

QueryOrigen es un IBQuery?
y Campo1, cual es el equivalente?

Gracias!
Responder Con Cita
  #6  
Antiguo 26-10-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Hola Dec,
De donde saco un Data Pump en Builder?
Responder Con Cita
  #7  
Antiguo 26-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Cita:
Empezado por JuanErasmo
De donde saco un Data Pump en Builder?
El programa puedes abrirlo desde los accesos directos correspondientes a C++ Builder que se sitúan dentro del menú de inicio de Windows. Se ejecuta una aplicación que se encuentra en: "C:\Archivos de programa\Archivos comunes\Borland Shared\BDE\datapump.exe", generalmente, vamos.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #8  
Antiguo 26-10-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Dec, no tengo el DataPump....

necesito hacerlo manualmente....
Es mezclar dos tablas, insertar una en la otra.....
Gracias. (En Builder)
Responder Con Cita
  #9  
Antiguo 26-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por JuanErasmo
Gracias pero una preguntas.

QueryOrigen es un IBQuery?
y Campo1, cual es el equivalente?

Gracias!
Es un IBQuery o un TQuery o un TAdoQuery, o un TDOAQuery... es lo que vos uses para conectarte a tu base de datos.

Campo1, pues como se llame el campo de tu tabla.

Digamos.

qClienteNOMBRES

o

qFacturaVALOR

etc.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #10  
Antiguo 26-10-2005
JuanErasmo JuanErasmo is offline
Miembro
 
Registrado: ago 2005
Posts: 544
Poder: 19
JuanErasmo Va por buen camino
Hola, el nombre del campo no se puede acceder como una propiedad....

asi que QueryOrigen.Campo1.Value en "Campo1" no puedo poner un AnsiString...
cual es la propiedad para relacionar un campo a un Query?
Gracias por tu ayuda.
Responder Con Cita
  #11  
Antiguo 27-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Código:
 while not QueryOrigen.eof do
 begin
   QueryDestino.InsertRecord([QueryOrigen.Campo1.Value,
 	QueryOrigen.Campo2.Value]);
 	  Query1Origen.next;
 end;
Bueno. En el código de más arriba no se está especificando si un determinado valor es de tipo "string" o de qué tipo sea, sencillamente, diría yo (a riesgo de equivocarme) se está asumiendo que el tipo de dato del "QueryOrigen" es el mismo que el tipo de dato del "QueryDestino". Es decir, tal vez no sea necesario hacer lo que te planteas hacer. ¿No?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #12  
Antiguo 27-10-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,


Código:
 while not QueryOrigen.eof do
 begin
   QueryDestino.InsertRecord([QueryOrigen.Campo1.Value,
 	QueryOrigen.Campo2.Value]);
 	  Query1Origen.next;
 end;
Bueno. En el código de más arriba no se está especificando si un determinado valor es de tipo "string" o de qué tipo sea, sencillamente, diría yo (a riesgo de equivocarme) se está asumiendo que el tipo de dato del "QueryOrigen" es el mismo que el tipo de dato del "QueryDestino". Es decir, tal vez no sea necesario hacer lo que te planteas hacer. ¿No?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #13  
Antiguo 27-10-2005
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cool

Cita:
Empezado por JuanErasmo
Hola, el nombre del campo no se puede acceder como una propiedad....

asi que QueryOrigen.Campo1.Value en "Campo1" no puedo poner un AnsiString...
cual es la propiedad para relacionar un campo a un Query?
Gracias por tu ayuda.
He usado Value, precisamente, por ser un variant (en tfield), donde podría caber cualquier tipo de dato, y asumiendo, como ya apunto dec que las estructuras serán identicas, o al menos, equivalentes

Claro que podes ser mas específico y poner:

Código Delphi [-]
  QueryDestino.InsertRecord([QueryOrigenCampo1.AsInteger,
    QueryOrigenCampo2.AsString, QueryOrigenCampo3.AsFloat]);
  //etcetera;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
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


La franja horaria es GMT +2. Ahora son las 12:30:52.


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