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 08-01-2010
mjjj mjjj is offline
Miembro
 
Registrado: mar 2007
Posts: 652
Poder: 18
mjjj Va por buen camino
Un consulta sobre dos BD distintas

Hola gente del foro, una preguntita.

Utilizo Firebird 2.0, Delphi 2006 y componentes Interbase.

Imaginense que tengo 2 BD distintas, alojadas en el mismo servidor.
En una aplicación quisiera poder realizar una consulta que relacione tablas de las distintas BD... se puede hacer esto?

Saludos
Responder Con Cita
  #2  
Antiguo 09-01-2010
Avatar de HenryAraniva
HenryAraniva HenryAraniva is offline
Miembro
 
Registrado: jun 2005
Ubicación: El Salvador
Posts: 44
Poder: 0
HenryAraniva Va por buen camino
Yo lo he hecho con los componentes ADO y utilizando bases de datos de SQLServer, en la conexion no debes especificar la base de datos y en el query solo pones por ejemplo
SELECT T1.Micampo,T2.Micampo
FROM Mibase1.dbo.MiTabla T1
INNER JOIN Mibase2.dbo.MiTabla T2 ON T1.Micampo = T2.Micampo
__________________
Cuando la única herramienta es un martillo todos los problemas tienen cara de clavo
Responder Con Cita
  #3  
Antiguo 09-01-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
No, con firebird no puedes relacionar 2 bd al mismo tiempo, tienes que coger los datos de una y otra, pero independientemente, cada una con su conexión.
Creo que en la última versión que está en fase "rc1" sí que lo permite, pero tendría que verlo para confirmarlo.
Responder Con Cita
  #4  
Antiguo 09-01-2010
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Arrow

Cita:
Empezado por mjjj Ver Mensaje
Hola gente del foro, una preguntita.

Utilizo Firebird 2.0, Delphi 2006 y componentes Interbase.

Imaginense que tengo 2 BD distintas, alojadas en el mismo servidor.
En una aplicación quisiera poder realizar una consulta que relacione tablas de las distintas BD... se puede hacer esto?

Saludos
Chequea este hilo para que veas si es posible hacerlo en Firebird ya que no todos los servidores de bases de datos son iguales o tienen las mismas caracteristicas..
Saludos...
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #5  
Antiguo 27-01-2010
Avatar de Axel_Tech
Axel_Tech Axel_Tech is offline
Miembro
 
Registrado: nov 2008
Ubicación: lugar en que está ubicado algo.
Posts: 85
Poder: 16
Axel_Tech Va por buen camino
Bueno, pues ya he probado Firebird 2.5 y he de decir que se puede hacer un SELECT a otra base de datos distinta, gracias a la expresión ON EXTERNAL DATA SOURCE, poniendo la ruta de la base de datos, el usuario y la contraseña. Pero mucho me temo que unir tablas (JOIN) de bases de datos distintas todavía no se puede pero bueno es un comienzo.
Habrá que seguir con las tablas temporales, claro que ahora se hace mucho más rápido (con un cursor, en un SP por ejemplo) que antes recorriendo con código Delphi las IBQuery y haciendo un INSERT registro a registro. Sería una cosa tal que así:
Código SQL [-]
DECLARE VARIABLE C1 INTEGER; 
DECLARE VARIABLE C2 INTEGER; 

BEGIN
   FOR 
       EXECUTE STATEMENT 'SELECT CAMPO1, CAMPO2 FROM TABLA WHERE CAMPO1 = 50'
       ON EXTERNAL DATA SOURCE '192.168.X.X:/RUTA/BASEDATOS.GDB' 
       AS USER 'SYSDBA' PASSWORD 'masterkey'
       INTO :C1, :C2
   DO 
       INSERT INTO TABLA_TEMPORAL (CAMPO1, CAMPO2) VALUES (:C1, :C2);    
END

Y posteriormente ya podríamos unir una tabla con la temporal que tiene los registros de la otra base de datos.
Aquí tenéis más información sobre el tema. También pone cómo hacer un simple SELECT para visualizar datos de otra base de datos mediante la sentencia EXECUTE BLOCK.
__________________
No hope, no dreams, no love, my only escape is Underground

Última edición por Axel_Tech fecha: 27-01-2010 a las 11:33:34.
Responder Con Cita
  #6  
Antiguo 27-01-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.040
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
muy interesante, gracias por compartirlo
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
Consulta Access con tablas en distintas BD. AMINOA2R Firebird e Interbase 5 23-02-2008 02:59:54
Consulta entre tablas de distintas BD kchilo SQL 5 05-09-2007 21:37:13
Misma consulta sobre bd distintas. No actualiza info obtenida. setry2 OOP 0 06-02-2007 12:50:26
consulta a dos DBase distintas martinc5 Conexión con bases de datos 1 17-05-2006 07:55:42
Consulta de dos BD distintas en BDExpress ibarrols Conexión con bases de datos 1 23-05-2003 16:07:11


La franja horaria es GMT +2. Ahora son las 20:47:34.


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