![]() |
¿Como Unir tablas de dos ALIAS diferentes?
Buenas, Tengo poca experiencia con SQL y necesito conbinar en una consulta tablas de dos bases de datos (alias) diferentes, he podido hasta ahora hacerlo usando algo como:
Como ven no uso el alias para identificar la segunda base de datos sino que "obligo" al BDE a buscar en el directorio específico del segundo alias la tabla. Esto funciona para tablas locales pero en redes o con otros tipos de base de datos dudo que sirva. ¿ Cual es la forma correcta de unir las bases de datos ? Nota: El código SQL generalmente lo creo en RunTime, usando bases de datos locales Paradox y un tQuery pero es muy posible que migre a Cliente/Servidor (FireBrid?) |
Firebird no tiene soporte para consultas en múltiples bases de datos. Podes revisar el diseño de tu aplicación... pues quizas no sea necesario que la información se encuentre en dos bases de datos distintas.
Una solución si tenes varios módulos es que podes tener una sola base de datos, a la que se conecten distintos clientes "especializados"... uno para inventarios, otro para contabilidad, etc. Pero todos los datos están en la misma bd, con lo que este tipo de consultas si son posibles. He visto que se comentó ayer u hoy por aqui que es posible que el BDE te de soporte para consultar varias BD's interbase al mismo tiempo... no se si sea posible, pero si lo es, seguro que estas serán lentas y también imposibles de optimizar, sobre todo si incluyen diferentes joins, predicados complejos y no digamos clausulas del tipo group by/having e incluso Order by. Hasta luego. ;) |
:(
Aunque esa era precisamente la respuesta que más temia, vor a ejemplificar algo más (solo por las dudas). La aplicación (la actual y la mayoría de las que he desarrollado) son "multiempresa" y usan varios directorios para almacenar las diferentes tablas de las bases de datos, me explico: Tipicamente creo una estructura de directorios así: Código:
\- AplicationDir -\- Data General -\- Data Empresa 1 Si tengo que juntar todas las tablas en una sola base de datos debería agregar el código de la empresa como campo clave a cada una de las tablas de datos de las empresas. Siempre he usado el método anterior porque me parece más seguro mantener los datos de las diversas empresas por separado en lugar de unirlos en una sóla base de datos (que si se daña perdería toda la información de todas las empreas). Se me ocurren 2 opciones, mover todos los datos de la empresa al directorio general al seleccionar la empresa y devolverlos al salir o cambiar de empresa o (y esto suena mejor) copiar las tablas comunes (que generalmente son estáticas definiciones y cosas así) dentro de la base de datos de la empresa para poder accesarlas como una sola base de datos, la unica desventaja es la redundancia de datos que se generaría (pero son tablas pequeñas) y no se que efecto real sobre el rendimiento tenga en ambientes cliente servidor. Creo que voy a usar mi segunda opción, pero acepto (y agradezco)sugerencias. Lo que sí quisiera saber es: ¿ Como puedo copiar tablas de una Base de datos a otra mediante codigo SQL ?. P.D. Todo este rollo por querer trabajar como sugieren Voutarks (y otros) en este hilo: Consejo sobre componentes a usar en conexión por internet |
Cita:
Cita:
Cita:
Cita:
Cita:
Cita:
Hasta luego. ;) |
La franja horaria es GMT +2. Ahora son las 04:37:37. |
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