PDA

Ver la Versión Completa : Consultar Varias Bases de Datos


amerika111
03-05-2011, 03:05:37
Hola que tal, quisiera saber si existe una manera de consultar varias bases de datos a la vez

base1 base2 tienen las mismas tablas

ejemplo

consultar tabla empleados base1 y tabla empleados base2 que ganen mas de 500

Caral
03-05-2011, 03:09:09
Hola
Depende:
Si ganan mas de 500 dolares o euros, el problema seria si son pesos.....:D
Saludos
PD: SI se puede.:)

guillotmarc
03-05-2011, 11:47:54
Hola.

Lo puedes hacer en Firebird 2.5, puesto que con esta versión a la sentencia EXECUTE STATEMENT le puedes añadir un modificador para indicar la base de datos donde ejecutar la sentencia.

Así pues no puedes realizar una simple consulta SELECT que vaya a cruzar datos de varias bases de datos, pero con el EXECUTE STATEMENT atacando una base de datos externa, puedes obtener el mismo resultado.

Saludos.

duilioisola
03-05-2011, 15:55:14
guillotmarc te ha respondido, si quieres saber desde un procedimiento almacenado de la base, consultar los datos de otra.

Si lo que quieres es tener dos bases abiertas desde Delphi, lo que deberás hacer es tener dos componentes TDatabase, con sus transacciones correspondientes y unir los resultados en un "dataset temporal" para luego mostrarlos.

Con "dataset temporal" me refiero a

una tabla en memoria
una estructura que crees con records
insertar en una tabla temporal de una de las bases los datos que te interesan de la base y agregarle lo de la segunda.

amerika111
03-05-2011, 22:20:42
Hola.

Lo puedes hacer en Firebird 2.5, puesto que con esta versión a la sentencia EXECUTE STATEMENT le puedes añadir un modificador para indicar la base de datos donde ejecutar la sentencia.

Así pues no puedes realizar una simple consulta SELECT que vaya a cruzar datos de varias bases de datos, pero con el EXECUTE STATEMENT atacando una base de datos externa, puedes obtener el mismo resultado.

Saludos.

lo he checado de esta manera


EXECUTE STATEMENT 'SELECT * FROM TA WHERE FECHA_INGRESO='2011-03-31'' ON EXTERNAL DATA SOURCE '192.168.1.29:C:\DATOS\BASE1.FDB' AS USER 'SYSDBA' PASSWORD 'masterkey'


Esto ya estando dentro de otra base de datos, BASE2