FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
conectar dos BD interbase para una consulta que sólo va a mostrar datos
Hola,
Estoy trabajando con dos bases de datos en Interbase 7.5. Tienen información que tenemos que cruzar, para obtener un listado. Hay alguna manera de, antes de nada, conectar a las BD desde la consulta SQL, para luego hacer una consulta entre tablas de ambas, como normalmente cuando las tablas son todas de la misma BD? Muchas gracias, Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
#2
|
||||
|
||||
No conozco firebird, pero en la mayoría de los motores de bases de datos, si no es que en todos, cuando consultas tablas de diferentes bases de datos que residen en el mismo servidor lo puedes hacer de la siguiente manera
Schema.TableName Teniendo que Schema es la base de datos. Suerte
__________________
Conoce mi blog http://www.edgartec.com |
#3
|
||||
|
||||
Saludos.
En Interbase/Firebird por el momento no se permiten sentencias de ningun tipo enlazadas entre dos BD sin importar su ubicacion fisica. Se espera que en la proxima version de Firebird (>= 2.5) se pueda realizar los cross join. La opcion que tienes por el momento es hacerlo manual desde delphi. Hasta luego.
__________________
Gracias, Rolphy Reyes |
#4
|
|||
|
|||
Cita:
Cita:
Muchas gracias por la ayuda, de ante mano, Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
#5
|
||||
|
||||
Cuando me referiero a su ubicacion fisica es que no importa en que servidor esten ubicadas las BD no podras realizar sentencias de ningun tipo via el mismo motor de BD.
En cuanto "hacerlo manual desde delphi" es que debes de poner 2 componentes de BD para conectar las distintas BD luego con 2 componentes Query/Dataset traer los datos de las BD e ir leyendo tus datos desde los DataSet y realizar las operaciones de lugar que necesites. Digo 2 por poner un ejemplo pueden ser mas dependiendo de tu caso. Hasta luego.
__________________
Gracias, Rolphy Reyes |
#6
|
||||
|
||||
Cita:
No se puede?, caramba, una nueva razón por la que no me gusta FireBird/Interbase.
__________________
Conoce mi blog http://www.edgartec.com |
#7
|
||||
|
||||
Cita:
Saludos |
#8
|
||||
|
||||
Cita:
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#9
|
||||
|
||||
Ahhh, ya encontre algo, pero veo que la implementación del cross-database esta presupuestada para la versión 3.0, no para la 2.5 que según veo no va a existir .
Precisamente estaba en el Roadmap de FireBird, ufff... . http://www.firebirdsql.org/index.php...ap_2007&nosb=1
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#10
|
||||
|
||||
Para comunicarme con otra bd, en algunos casos he encontrado muy útil usar las tablas externas, yo hago algo como lo siguiente:
1. En bd1 creo una tabla externa 2. luego en la bd 2 creo exactamente la misma tabla externa
y ahí comparto información entre las dos bds sin necesidad de usar mas que querys... es solo una idea..... |
#11
|
|||
|
|||
podrías unificar las dos bases en una..
si tienes que consulltar datos de dos bds seguramente hay un relación de integridad entre ambas, aun con la versión 3 y los cross joins entre bases esto no se puede garantizar |
#12
|
|||
|
|||
Hola de nuevo,
Desde que me comentaste esto: Cita:
Quiero decir, si tengo una base de datos 1 con una tabla A, que tiene muchos registros para cada campo "codigo" y tengo otra base de datos 2, con una tabla B, en la que hay un sólo registro para cada campo "codigo" y tengo que hacer que se conecten por ese campo código, para que cada registro de la tabla A tenga una correspondencia con el campo2 de la tabla tablaB. Hasta aquí todo bien. Me devuelve todos los registros de la tablaA y un campo más que resulta de la consulta a la tablaB. El problema es que, la tablaB NO tiene 1 registro por cada número de codigo, por lo que algunos registros de la tablaA se quedan en blanco, cuando lo que yo necesito es que en tal caso esos registros no se muestren. Por eso necesito, alguna manera dentro del delphi, de que se conecten las BD. Espero haberme explicado bien. Muchas gracias por todo, Virginia
__________________
Sonrie al mundo, y el mundo te sonreirá :) |
#13
|
||||
|
||||
Saludos.
Jhonny aca tienes el link de la información que dije http://www.firebirdnews.org/index.php?paged=2 Virginia si vas a relacionar dos tablas se supone que debes de tener un campo por el cual vas a realizar dicha operacion. Debes de enfocarte bien en lo que quieres obtener y si puedes darnos parte de la estructura asi mas facil podriamos ayudarte. Hasta luego.
__________________
Gracias, Rolphy Reyes |
#14
|
||||
|
||||
Cita:
Gracias RolphyReyes .
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!" http://www.purodelphi.com/ http://www.nosolodelphi.com/ |
#15
|
|||
|
|||
creo que si se puede
pues yo creo que si se puede , no lo he provado, pero deberia funcionar sin problemas.
creas dos conexiones odbc , una apuntando a la bd1 , y otra apuntando a la bd2. luego desde access, vinculas las tablas correspondientes por odbc, de la bd1 y la bd2. y se hace la consulta desde access. select from tabla1,tabla2 where tabla1.codigo=tabla2.codigo ... etc. si funciona , podemos guardar la consulta , y/o acceder a la bd acces con las tablas vinculadas. el rendimiento será pobre , ya que supongo que access se traerá los datos y luego hará la consulta localmente. que alguien lo pruebe y diga si funciona. |
#16
|
|||
|
|||
Me respondo a mi mismo.
Comprobado , funciona correctamente y bastante bien. he enlazado mediante una consulta 2 tablas de 2 bases de datos distintas que residen en distintos servidores firebird. la aplicación solo ha de acceder a la base de datos que en este caso es access (donde estan vinculadas las tablas de los distintos servidores firebird por odbc ) , y trabajar como si trabajara con una bd access. el access se encarga de todo , a la aplicación le es transparente y le da igual que las tablas se encuentren en distintos servidores. saludos. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Error en Consulta - solo salen datos la primera vez | javicho_villa | Varios | 5 | 24-01-2006 02:09:21 |
mostrar solo los datos que yo kiera en una tabla | ercrizeporta | Conexión con bases de datos | 1 | 15-07-2005 13:20:47 |
Conectar Con Una Base De Datos En Interbase | Argaron | PHP | 3 | 05-08-2004 22:44:47 |
mostrar SOLO cliente de los que tengo un sólo registro | Giniromero | SQL | 15 | 11-06-2004 12:33:19 |
Construir un select para mostrar en un dbgrid sólo dos tipos | Aprendiendo | SQL | 4 | 31-12-2003 13:49:39 |
|