Ver Mensaje Individual
  #5  
Antiguo 27-01-2010
Avatar de Axel_Tech
Axel_Tech Axel_Tech is offline
Miembro
 
Registrado: nov 2008
Ubicación: lugar en que está ubicado algo.
Posts: 85
Reputación: 16
Axel_Tech Va por buen camino
Bueno, pues ya he probado Firebird 2.5 y he de decir que se puede hacer un SELECT a otra base de datos distinta, gracias a la expresión ON EXTERNAL DATA SOURCE, poniendo la ruta de la base de datos, el usuario y la contraseña. Pero mucho me temo que unir tablas (JOIN) de bases de datos distintas todavía no se puede pero bueno es un comienzo.
Habrá que seguir con las tablas temporales, claro que ahora se hace mucho más rápido (con un cursor, en un SP por ejemplo) que antes recorriendo con código Delphi las IBQuery y haciendo un INSERT registro a registro. Sería una cosa tal que así:
Código SQL [-]
DECLARE VARIABLE C1 INTEGER; 
DECLARE VARIABLE C2 INTEGER; 

BEGIN
   FOR 
       EXECUTE STATEMENT 'SELECT CAMPO1, CAMPO2 FROM TABLA WHERE CAMPO1 = 50'
       ON EXTERNAL DATA SOURCE '192.168.X.X:/RUTA/BASEDATOS.GDB' 
       AS USER 'SYSDBA' PASSWORD 'masterkey'
       INTO :C1, :C2
   DO 
       INSERT INTO TABLA_TEMPORAL (CAMPO1, CAMPO2) VALUES (:C1, :C2);    
END

Y posteriormente ya podríamos unir una tabla con la temporal que tiene los registros de la otra base de datos.
Aquí tenéis más información sobre el tema. También pone cómo hacer un simple SELECT para visualizar datos de otra base de datos mediante la sentencia EXECUTE BLOCK.
__________________
No hope, no dreams, no love, my only escape is Underground

Última edición por Axel_Tech fecha: 27-01-2010 a las 11:33:34.
Responder Con Cita