• Domingo 22 de Diciembre de 2024, 18:08

Autor Tema:  Conexion A Dos Bases De Datos  (Leído 1845 veces)

pyanqn

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Conexion A Dos Bases De Datos
« en: Miércoles 21 de Diciembre de 2005, 23:57 »
0
Hola.

Tengo un problema. Necesito hacer un Select de datos que se encuentran en dos tablas. Cada tabla se encuentra en una Base de datos diferente. Las conexiones las realizo usando Zeos, ya que el servidor es mysql.

Bien el problema es hay dos BD llamemoslas BD1 y BD2 la tabla agentes esta en BD1 y la tabla visitantes en BD2 , tambien hay una tabla visitas en BD2. en la tabla visitas se guarda : fecha, hora , clave del agente, clave del visitante (y otras cosas)

Lo que se requiere es hacer una consulta que mustre los datos de una visita. Pero que no se muestre la clave del agente, sino el nombre y apellido (esta es la dificultad, no se puede hacer un join porque las tablas estan en conexiones distintas).

Bueno, espero que alguien pueda ayudarme. Las restricciones son no se puede tocar la base de datos (mysql).

Gracias

bartolomeo

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
Re: Conexion A Dos Bases De Datos
« Respuesta #1 en: Jueves 22 de Diciembre de 2005, 13:49 »
0
La verdad no uso mysql con delphi, pero imagino que deberia ser lo mismo para firebird y para interbase:

Si manejas Dataset, entonces en la propiedad datasuorce pones el datasource
de la tabla secundaria.

[size=109]Por que Rolo soy yo¡¡¡¡¡[/size]

pyanqn

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Conexion A Dos Bases De Datos
« Respuesta #2 en: Jueves 22 de Diciembre de 2005, 16:23 »
0
Gracias...

Pero Podrías esplayarte un poco más en tu esplicación. Supongamos el mismo problema pero tratemoslo entonces como si usaramos componentes IBX.

Tengo un Query, alli consultaré la tabla Visitas.
Pongo un DataSource que tomará los datos del Query. llamesmolo DSQ1
La grilla (DBGrid) toma los datos del DataSource (DSQ1).

Bien entiendo que hay que poner otro DataSource (DSAgentes) este es el de la cuestion, apuntando a la tabla Agentes.

Y luego en el IBQuery pongo, pongo en la propiedad datasource  DSAgentes?
Y si es así, la cuestión es como realizo la consulta SQL, es decir como indico que los datos los tome desde DSAgentes?

Gracias, probaré tu recomendación y algo mas, espero una pronta respuesta tuya.

bartolomeo

  • Miembro MUY activo
  • ***
  • Mensajes: 207
    • Ver Perfil
Re: Conexion A Dos Bases De Datos
« Respuesta #3 en: Jueves 22 de Diciembre de 2005, 21:39 »
0
el motor del gestor como tal no lo admite. Es decir, no puedes pasar una SELECT al motor Firebird haciendo un JOIN de tablas de varias bases de datos. Otro asunto es que determinadas bibliotecas de acceso (creo que el BDE lo permite) recurran a determinados artificios para devolverte un Dataset con datos que provengan de varias bases de datos, pero este Dataset se construye en el cliente, lanzando varias consultas a las diferentes bases de datos.

[size=109]Por que Rolo soy yo¡¡¡¡¡[/size]

pyanqn

  • Nuevo Miembro
  • *
  • Mensajes: 3
    • Ver Perfil
Re: Conexion A Dos Bases De Datos
« Respuesta #4 en: Martes 27 de Diciembre de 2005, 14:04 »
0
Gracias.

Puedo decir que una posible solucion es esa. Como dije en mi último mail, en el que te consulte!

Muchas gracias...