Subject Re: [firebird-support] Writing to Aliases.conf in non-admin mode
Author Venus Software Operations


On 23/10/2015 10:24 pm, Eduardo gusedum@... [firebird-support] wrote:
 

I did what (I think is what) you need many years ago. I donĀ“t remember exactly the details, but this is still working. What I did was the following:

When my application initiates, it checks if there exists a database named MYAPPLICATIONCONFIGURACION.FDB. If it doesn't exist, it creates it. When the application creates the database, it creates 3 UDFs executing SQLs begining with "DECLARE EXTERNAL FUNCTION ..."

The UDFs are the following (the names are in spanish):

MMudfUbicacionDelAlias
It is called with a parameter "Alias". It opens the file aliases.conf, look for the alias and returns a string with the path of the database.

MMudfPudeEstablecerAlias
It is called with a parameter "Alias" and a parameter "Path". It opens the file aliases.conf, and adds a new line with Alias=Path.

MMudfPudeCrearDirectorio
It is called with a parameter "Directory". It creates a folder in the hard disk with the name indicated.

In the file aliases.conf, there is a line MYAPPLICATIONCONFIGURACION = C:\...\MYAPPLICATIONCONFIGURACION.FDB.


When a user wants to create a new database, the application opens the database MYAPPLICATIONCONFIGURACION and executes the following SQL:

SELECT MMudfPudeEstablecerAlias('Alias','Path') FROM RDB$DATABASE

This can be done using the application in the server or in any client PC of the newtork.

Regards

Eduardo

Thanks Eduardo.  I would never have thought of going this way, not good with FireBird procedural coding.  Like I wrote to Stefan above I found a different way to go about this.  I took a copy of the Aliases.conf to a temp folder and updated it as necessary.  Then I used ShellExecute Windows API with "runas" parameter to run a custom batch file that does the replace of the Alias.conf file with the updated one in the temp folder.  That brings up the UAC prompt but that is fine I don't mind announcing that to the user of a system change.

Kind regards
Bhavbhuti