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 15-04-2008
drykea drykea is offline
Miembro
 
Registrado: abr 2007
Posts: 113
Poder: 18
drykea Va por buen camino
Consulta a dos bases de datos

Hola a tod@s.

Tengo una aplicacion con dos ADOConnection a dos bbdd diferentes.
En una tengo los nombres de los clientes y en otra los pedidos con un codigo de cliente.

Necesito mostrar los datos en un dbgrid, habia pensado algo como:
Select Pedidos.*, Cliente.Nombre from Pedidos inner join Cliente on cliente.codcli = Pedidos.codcli

Teniendo en cuenta que cada tabla esta en una base de datos
¿alguien sabe como hacerlo?

Muchas gracias de antemano
Responder Con Cita
  #2  
Antiguo 15-04-2008
Avatar de enecumene
[enecumene] enecumene is offline
Miembro de Oro
 
Registrado: may 2006
Ubicación: Santo Domingo, Rep. Dom.
Posts: 3.040
Poder: 21
enecumene Va por buen camino
Hola, no te garantizo que te funcione, pero de nada se pierde con probar:

Código SQL [-]
select BD1.Tabla.Campo, BD2.Tabla.Campo from BD1.Tabla, BD2.Tabla  where...

espero te sirva,

Saludos.
__________________

Mi BLOG - ¡Joder, leanse la guia de estilo!
Las Palabras son enanas, los ejemplos gigantes.
Responder Con Cita
  #3  
Antiguo 15-04-2008
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.278
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
¿Qué BD estás utilizando?
En el caso de SQL Server busca en la ayuda sobre LINKED SERVERS y obtendrás cómo se puede hacer.
El el caso de ACCESS sino recuerdo mal, se puede añadir el path de la BD antes del nombre de la tabla.
__________________
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 15-04-2008
luisgutierrezb luisgutierrezb is offline
Miembro
 
Registrado: oct 2005
Ubicación: México
Posts: 925
Poder: 19
luisgutierrezb Va por buen camino
los 2 ado connection son para 2 bases de datos diferentes en 2 plataformas diferentes? o para 2 bases de datos en una misma plataforma?
nos podrias dar mas informacion?
Responder Con Cita
  #5  
Antiguo 16-04-2008
drykea drykea is offline
Miembro
 
Registrado: abr 2007
Posts: 113
Poder: 18
drykea Va por buen camino
Hola gracias a todo por responder.

Estoy utilizando SQL Server y las dos bbdd estan en el mismo servidor.

Lo de poner la base de datos antes de la tabla no me ha funcionado.
Voy a buscar a ver lo que encuentro sobre los LINKED SERVERS.
Responder Con Cita
  #6  
Antiguo 16-04-2008
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.278
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
En el caso de SQL Server y estando ambas dentro del mismo servidor basta con que las llames utilizando nombre de la Base de Datos y nombre de la tabla (interponiendo dbo).

Código SQL [-]
Select * from BD1.dbo.tabla1
union
Select * from BD2.dbo.tabla2

NOTA: Para el mismo servidor no hace falta LINKED SERVERS.
NOTA2: He aquí un ejemplo más de lo importante que es explicar las cosas bien. Si esta última explicación (los dos detalles subrayado) la hubieras dado en un primer momento nos hubieramos ahorado muchas horas y unas cuantas respuestas.

Un saludo.
__________________
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.

Última edición por Neftali [Germán.Estévez] fecha: 16-04-2008 a las 11:38:37.
Responder Con Cita
  #7  
Antiguo 16-04-2008
drykea drykea is offline
Miembro
 
Registrado: abr 2007
Posts: 113
Poder: 18
drykea Va por buen camino
Siento no haberme explicado bien a la primera.

De todos modos, lo de la 'union' no me sirve porque eso lo que hace es devolver registros de los dos sitios pero anexarlos 'en vertical' y yo lo que quiero es hacerlo 'en Horizontal'.

A ver si me explico:
Yo quiero obterner algo parecido a esto:
bd1.tabla1.Pedido bd2.tabla2.Cliente

Y lo que me devolveria la union sería:

bd1.tabla1.Pedido
bd2.tabla2.Cliente

Asi para todos los pedidos, como quiero visualizarlo en un DBGRID lo de la union no me sirve.
Responder Con Cita
  #8  
Antiguo 16-04-2008
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.278
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
Lo de la UNION aquí es un ejemplo, simplemente era para que vieras como se llama a las diferentes tablas.
Lo que tú necesitas hacer es una simple JOIN, pero tu pregunta iba referida a cómo llamar a las tablas, no a cómo relacionarlas para obtener los datos.
__________________
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
  #9  
Antiguo 16-04-2008
drykea drykea is offline
Miembro
 
Registrado: abr 2007
Posts: 113
Poder: 18
drykea Va por buen camino
Ya sé que necesito algo parecido a un inner join.

Tal y como dije en el primer post, el problema es que no sé como hacerlo con delphi y ADO.

¿Alguien sabe como?
Responder Con Cita
  #10  
Antiguo 16-04-2008
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.278
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
HAz una busqueda en los foros hay muchísimos ejemplos de cómo hacerlo....
__________________
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
  #11  
Antiguo 18-04-2008
drykea drykea is offline
Miembro
 
Registrado: abr 2007
Posts: 113
Poder: 18
drykea Va por buen camino
Eso ya lo hice antes de poner el post, pero no encontré lo que necesito.
Responder Con Cita
  #12  
Antiguo 18-04-2008
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.278
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
Si revisas el hilo con detalle tienes todas las respuestas.
Coloca un ADOConnection y un ADOQuery. En el ADOQuery la siguiente consulta:

Código SQL [-]
  Select BD1.dbo.Pedidos.*, BD2.dbo.Cliente.Nombre from BD1.dbo.Pedidos inner join BD2.dbo.Cliente on BD2.dbo.Cliente.codcli = BD1.dbo.Pedidos.codcli
__________________
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
  #13  
Antiguo 18-04-2008
drykea drykea is offline
Miembro
 
Registrado: abr 2007
Posts: 113
Poder: 18
drykea Va por buen camino
Vale y a que base de datos conecto el ADOConnection a BD1 o a la BD2 ???
Responder Con Cita
  #14  
Antiguo 18-04-2008
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.278
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
Pues da igual, lo importante en el ADOConnection es el Servidor, puesto que las Bases de Datos ya se las estamos pasando en la consulta.
__________________
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
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 a varias bases de datos carlos gonzalez Conexión con bases de datos 13 04-10-2007 19:51:41
consulta a tablas de bases de datos externas odin SQL 4 23-09-2004 17:07:27
como hacer una consulta a dos bases de datos distintas yavy SQL 2 16-12-2003 20:51:30
Una Consulta De 2 Bases De Datos Diferentes edy_aca SQL 2 12-12-2003 11:24:49
Consulta entre bases de datos diferentes yanaysi Varios 1 28-05-2003 04:35:37


La franja horaria es GMT +2. Ahora son las 18:49:57.


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