Subject RE: [firebird-support] Writing to Aliases.conf in non-admin mode
Author Leyne, Sean

Walter,

 

While that answer is correct, the better answer would be for the Project to modify engine and installer to be Windows Vista+ compliant and have all configuration files stored in All Users\Application Data\Firebird and not in Programs Files\Firebird

 

 

Sean

 

From: firebird-support@yahoogroups.com [mailto:firebird-support@yahoogroups.com]
Sent: November 2, 2015 10:26 PM
To: firebird-support@yahoogroups.com
Subject: Re: [firebird-support] Writing to Aliases.conf in non-admin mode

 




Well, the more easy answer is not install Firebird under the folder "Program files", because Windows since its Vista version has protected that folder.

 

You can install Firebird in C:\FIREBIRD\ or something so and no problems writing to any of its files.

 

Greetings.

 

Walter.

 

 

 

On Sat, Oct 24, 2015 at 1:47 AM, Venus Software Operations venussoftop@... [firebird-support] <firebird-support@yahoogroups.com> wrote:

 

 

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