Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Detectar motores de bases de datos existentes en la red (https://www.clubdelphi.com/foros/showthread.php?t=92393)

Guti13 18-10-2017 20:25:18

Detectar motores de bases de datos existentes en la red
 
Hola a todos, tengo desarrollado un software en Delphi 10 Seattle usando FireDAC que pasándole los parámetros de conexión a una base de datos SQL Server te genera la documentación DDL de toda la base de datos. Pues bien lo que deseo ahora es poder hacerlo sobre otros sistema de base de datos (Oracle, MySQL, PostGress, etc) y en vez de darle directamente los parámetros de conexión, mi idea es seleccionando el Driver correspondiente obtener un listado de los motores de bases de datos disponibles en la red y una vez seleccionado e introducido Usuario y Password me ofrezca las bases de datos disponible, es decir, algo parecido por ejemplo a lo que hace EMS con sus Manager para bases de datos al definir una nueva conexión.

Una vez planteada mi idea mi pregunta es, ¿Alguien conoce algún componente o sistema para detectar los motores de bases de datos existentes en la red y una vez seleccionado y conectado como obtener las bases de datos existentes ?

Muchas gracias

Guti13 19-10-2017 21:57:14

Detectar Servidores
 
Bueno ya he descubierto algo y os cuento por si a alguien le viene bien. Entre los componentes de FireDAC están los FireDACLinks que son un conjunto de componentes específicos para cada motor de base de datos para configurar los drivers de conexión para cada base de datos. Pues bien en el caso de los componentes para SQL Server y Oracle estos componentes tienen los métodos GetServers y GetTNSServices, respectivamente, que nos devuelven las instancias disponibles en la red. Para el resto de bases de datos no existe ningún método similar, pero seguiremos avanzando.

Para mostrar las bases de datos disponibles ya una vez hecha la conexión con el servidor correspondiente pues se deben usar los comandos propios de la base de datos, p.e. "Show Databases" para mysql o "SELECT name, database_id, create_date FROM sys.databases " para SQL Server.

Espero que os sirva de ayuda, si alguien averigua algo mas os agradecería toda la información que me déis.

Gracias a todos

Casimiro Notevi 19-10-2017 23:01:51

^\||/^\||/^\||/


La franja horaria es GMT +2. Ahora son las 08:26:27.

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