Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Consultar Varias Bases de Datos (https://www.clubdelphi.com/foros/showthread.php?t=73581)

amerika111 03-05-2011 03:05:37

Consultar Varias Bases de Datos
 
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

Cita:

Empezado por guillotmarc (Mensaje 398692)
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


La franja horaria es GMT +2. Ahora son las 08:51:15.

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