Is het mogelijk met FIreDAC een connectie te maken met een server (en niet met een database) en de lijst met beschikbare databases op te vragen?
Is het mogelijk met FIreDAC een connectie te maken met een server (en niet met een database) en de lijst met beschikbare databases op te vragen?
Hangt van de database server af. Bij de meeste 'echte' servers is deze mogelijkheid (ook wegens veiligheid) niet aanwezig.
Laats was op het Lazarus forum ook eenzelfde vraag.
https://forum.lazarus.freepascal.org...msg321663.html
Na wat zoeken: TFDConnection.GetCatalogNames()
Leuk voor een MySQL servertje. Maar dat gaat op een Firebird Server niet werken. Zeker niet als het de eerste keer is dat je contact maakt (want er kan met een connection-cache gewerkt worden maar die is de eerst keer natuurlijk leeg).
Dit was MSSQL. Hmm...
Dan zal MSSQL ze ook in een eigen tabel bijhouden (wat ik niet zo veilig vind).
Je moet er echter wel voldoende rechten voor hebben.
Maar goed... het hangt dus van de onderliggende database af of dit ondersteund wordt.
Bij Firebird moet je zelf een complete harde pad naar de databasefile opgeven.
Firebird zelf houdt deze niet bij in een lijstje.
Bij MySQL, Postgres en MSSQL schijnbaar wel.
Via stored proc sp_databases
Of anders zit het bij MSSQL in de sys.databases (master)
Beiden vereisen wel wat rechten links en rechts, maar daar zal MSDN je vast snel bij kunnen helpen
Welke van de 2 methodes TFDConnection.GetCatalogNames() op een MSSQL loslaat weet ik niet, zul je met de profiler even moeten kijken.
Maar je kan het natuurlijk ook zelf aanroepen via een van bovenstaande methodes
Objective reality is a delirium caused by lack of alcohol in blood
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks