![]() |
Consulta a dos databases diferentes....
:confused: ....buscando y buscando no encuentro la forma de hacerlo. (es mas, casi aseguraria que no se va a poder hacer) :confused:
Imaginemos un database en local y otro database en remoto. Como se puede hacer en una consulta para extraer algunos datos de una tabla que cuelga del primer database relacionados con una tabla que cuelga del otro database. Buffff...que mal me he explicado. Ejemplo: Database1 apunta a 192.168.1.2:c:\bdd\pruebaLocal.gdb Pongamos que tiene una tabla llamada mitablaLocal Database2 apunta a 192.168.1.3:c:\bdd\pruebaRemoto.gdb Pongamos que tiene una tabla llamada mitablaRemoto Si se pudiera hacer algo de la forma: select database1.mitablalocal.campo1 from database1.mitablalocal where database1.mitablalocal.campo1 not in (select database2.mitablaremoto.campo1 from database2.mitablaremoto) Como veis busco una solucion facil para sincronizaciones entre bdd's diferentes. Gracias por adelantado.... ;) Espero vuestas respuestas, aunque sea para decir que no se puede hacer. |
Hola,
Cita:
Algunas bibliotecas de componentes (caso del BDE) permiten (yo nunca lo he probado) hacer el truco de lanzar consultas que involucren a bases de datos distintas, aunque imagino que internamente debe lanzar diferentes consultas (una para cada base de datos) y después construir un único Dataset con los resultados obtenidos por cada una de ellas. Saludos. P.D. Creo recordar que en el foro ya hablamos otra vez sobre este tema. |
Gracias por contestar, si que me suena de otras veces haber leido algo sobre sincronizaciones en el foro, pero con tanto cambio de versiones de motores de bdd y tal como avanzan las cosas, igual me habia perdido algo.
Seguiremos haciendolo de forma "pedreste" y rudimentaria, una pena, algo que se hubiera podido hacer con una consulta a mi me lleva muchas lineas de codigo. Habia oido que MiSQL ya tenia solucionado este problema. Salu2 ;) |
Cita:
Saludos. |
Cita:
De hecho, este tipo de consultas son soportadas por varios motores. Yo se de mySQL y de Oracle. Cita:
Lo que para mi representa una deficiencia también en interbase (y no se si firebird siga la misma línea) es el hecho que no pueden haber dos tablas con el mismo nombre, de diferentes propietarios... esto en mas de una ocasión, obliga a dividir en varias bases de datos, lo que podria estar en una sola, con esquemas identicos bajo diferentes owners. Para txemag, queda como tarea, verificar su modelo y determinar si no hay que unificar ambas bases de datos en una... si es asi, podes valerte de varios mecanismos para voltear la información de una base en otra y a partir de alli replantear tus consultas. Hasta luego. ;) |
Hola Juan Antonio,
Cita:
Cita:
Cita:
Saludos. |
No sé si Oracle o SQL Server lo permitan pero ciertamente MySql no permite hacer lo que requiere txemag. MySql permite consultas entre distintas bases de datos en un mismo servidor más no entre distintos servidores.
Por otra parte no estoy muy seguro que la necesidad de consultar distintas bases de datos sea una cuestión de mal diseño de la base. Doy un ejemplo simplificado: en una facultad se tienen sistemas para control escolar y para nomina. Ambos sistemas son totalmente independientes en naturaleza, diseñados y mantenidos por equipos distintos. Pero algunas tablas, como la de profesores es común a ambas y sería deseable contar con una única copia. No creo que un buen diseño relacional consista en fusionar en una sóla base de datos las de ambos sistemas. // Saludos |
Cita:
Cita:
Hasta luego. ;) |
Cita:
// Saludos |
Hola,
Cita:
Si esto es así, ser totalmente independientes, por qué habría de relacionar relaciones (tablas) de una base de datos y de la otra. Cita:
Insisto en mi comentario, y especialmente para el caso que presentas como ejemplo: el modelo de datos debería diseñarse dentro de una sola base de datos. El modelo de datos no se ve afectado (o no debería) por el número de equipos que diseñen y mantengan ese modelo. Por otro lado, el modelo relacional tiene su nivel de abstracción máximo en la base de datos, no en conjuntos de bases de datos. Es decir, no contempla las relaciones entre diferentes bases de datos. Por tanto, sí es un problema de diseño que tengas que relacionar una tabla de una base de datos con otra tabla de otra base de datos. Otro asunto distinto es que sea más sencillo diseñar y mantener el sistema en bases de datos separadas, pero es un artificio de conveniencia. Saludos. |
Cita:
Cita:
// Saludos |
Hola,
Cita:
Cita:
Saludos. |
Cita:
Cita:
|
Cita:
Cita:
Insisto, el modelo relacional no recoge en ningún caso (al menos que yo recuerde) la necesidad de relacionar diferentes bases de datos. Su tope máximo son las relaciones de relaciones (tablas) - A tener en cuenta la diferencia en Inglés entre relation y relationship. Saludos. |
La franja horaria es GMT +2. Ahora son las 09:30:56. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi