Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   consultas desde objetos delphi con conexiones de origen distinto (https://www.clubdelphi.com/foros/showthread.php?t=68255)

NovatoEnObjetos 03-06-2010 16:19:27

consultas desde objetos delphi con conexiones de origen distinto
 
Hola a todos, fijense que me surgio la necesidad de tener conexiones con oracle y postgress en la misma aplicacion, en oracle tengo unas tablas y algunas vistas que tienen cierta informacion, y en postgress tengo otras tablas con otra informacion. El hecho es que en algunas tablas que tengo en oracle necesito incluir de alguna manera datos que tengo en las de postgress.

La pregunta es: ¿hay alguna manera de traer datos desde oracle, traer de postgress, luego localmente (en la maquina del usuario), ya con los datos en la maquina realizar las consultas(via sql) y obtener los datos que quiero?

Cabe mencionar que estoy usando delphi 7, las conexiones son via ADOconnection y ADOquery.

Finalmente quisiera saber si hay alguna manera de hacer consultas como si fuera a una base de datos con tablas y campos y registros y relacionar esas tablas como si fuera una base de datos, pero que finalmente el origen de esas tablas es distinto( osea oracle y postgress)...please :(

Neftali [Germán.Estévez] 03-06-2010 17:14:16

Puedes conectar a 2 Bases de Datos desde tu aplicación simplemente colocando 2 conexiones una hacia cada Base de Datos.
Puedes "traer datos a local" utilizando el componente TClientDataset, aunque no veo porqué no hacer directamente las consultas contra el servidor.

Lo de lanzar una JOIN contra 2 Base de Datos distintas es difícil. Hay algunas Bases de Datos que permiten "LINKAR" hacia otros servidores "iguales" o en algun caso me suena que también a distintos vía ODBC, pero deberías ver si alguno con los que estás trabajando permiten algo así y la eficiencia que puedes obtener de ese invento.

Tal vez lo más sencillo sea importar todo a 1; Por ejemplo importar hacia Oracla a una tabla temporal y allí hacer las consultas que necesires; Todo esto es muy general, porque habría que saber de qué volumen de datos estamos hablando....

gatosoft 03-06-2010 18:32:03

De acuerdo con Neftali, deberias pensar en llevar la info. que necesites de una base a otra (temporalmente) para hacer tu trabajo o consultas... Eso depende de que tanta info manejes por transacción...

La Otra sugerencia sería traer la info de una base de datos a un ClientDataset y Alimentar / Complementar la info de la otra base de datos en el mismo ClientDataset, asi tendrías la info unificada... pero tendrías un costo en el tiempo de hacer "un Join manual"... una vez en el ClientDatset, puedes valerte de los filtros ...

Son solo ideas...

NovatoEnObjetos 05-06-2010 18:46:34

Pero....
 
Aver si esta ves me explico, nose si los he confundido(ajá) o mas bien me explique mal.

Tengo mis tablas que vienen siendo mis adoquery, resultado de una consulta. estas provienen de distintas bases de datos, pero comparten las propiedades de una tabla normal, tienen un nombre, tienen registros, tienen campos.
Mi idea es relacionar esas tablas a traves de una consulta, esto tendria que ser en local con los adoquery ya cargados. Lo que quiero, si es que se puede es realizar las relaciones de las consultas en tiempo de ejecucion con los datos cargados como si fuera a una base de datos pero a algun objeto por ahi que me las relacione¿?:(

Neftali [Germán.Estévez] 07-06-2010 09:55:49

Cita:

Empezado por NovatoEnObjetos (Mensaje 366294)
Mi idea es relacionar esas tablas a traves de una consulta, esto tendria que ser en local con los adoquery ya cargados. Lo que quiero, si es que se puede es realizar las relaciones de las consultas en tiempo de ejecucion con los datos cargados como si fuera a una base de datos pero a algun objeto por ahi que me las relacione¿?:(

No se puede; Es lo que intentamos decirte. Para poder relacionarlas, debes volcarlas a tablas locales y entoinces montar la nueva consulta que las relacione.
Pero teniendo los Querys en memoria no se puede.


La franja horaria es GMT +2. Ahora son las 03:48:53.

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