Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   Consulta sql en multiples bd (https://www.clubdelphi.com/foros/showthread.php?t=94024)

Mteje 24-06-2019 00:29:18

Consulta sql en multiples bd
 
Hola buenas tardes, mi consulta es la siguiente:

Tengo un programa que administra múltiples empresas (cada una de ellas es una base de datos distintas, en cada bd de empresa hay una tabla llamada "Empresa" con la información correspondiente a ella, Razón social, etc.).

Lo que necesito es una consulta SQL para enviarla al reporteador FastReports 5.0 en donde consiga listar toda la información de las empresas que administro. No hay ninguna tabla que diga la cantidad de empresas que tengo sino que eso lo obtengo de una consulta a sys.databases ya que todas las empresas en su nombre de base de datos tienen un prefijo.

Asi por ejemplo recupero todas las bases de datos que corresponden a las empresas de la siguiente forma:
Código SQL [-]
select name from sys.databases where name like 'Prefijo%'

Esto devolvería por ejemplo:
dbEmp1
dbEmp2
dbEmp3
etc.

Entonces desde ese resultado de la Query anterior tengo que entrar en cada base de datos y recuperar la informacion que se encuentra en la tabla "Empresa".
Quedando por ejemplo:
Empresa1
Empresa2
Empresa3

Por ahora no consigo lograr la forma, desde ya muchas gracias

Casimiro Notevi 24-06-2019 01:18:04

  • Desde la primera hasta la última
  • Conectas a la empresa
  • Extraes los datos
  • Pasas a la siguiente empresa

Mteje 24-06-2019 01:21:11

Vos decís que vaya conectando y agregándole en sql.add la consulta y después que las ejecute todas juntas?

Casimiro Notevi 24-06-2019 01:28:43

No, que extraigas los datos una a una, y puedes ir presentándolos o añadiéndolos a una tabla en memoria, o una tabla dedicada para ese tema, o lo añades a un clientdataset, o como mejor te venga.

luisgutierrezb 24-06-2019 03:52:53

Si es MSSQL primero obtienes las empresas y de ahí dinámicamente haces la consulta, de la manera
Código SQL [-]
Select * from basedatos.dbo.tabla

O también basedatos..tabla (sin el dbo)

Casimiro Notevi 24-06-2019 09:01:16

No sabemos qué motor sql estás usando: firebird, postgresql, ms sql server, mysql, etc.
En algunos puedes hacer la consulta a distintas bases de datos sin tener que hacer llamadas distintas.


La franja horaria es GMT +2. Ahora son las 11:59:21.

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