Open zoltanleo opened 3 years ago
Hi @Jdochoa and @arvanus
Suggestion to partially fix this issue. Search for the fbclient.dll library before attempting the connection following this priority:
Best Regards, Luciano
Perhaps I have not expressed my point clearly enough. I asked to add the ability to select fbclient.dll/.so from any directory or set the path to it via environment variables (like FIREBIRD).
I think that the functionality and popularity of your application will increase several times.
Unfortunately, your application is currently using hard links to connect to fbclient.dll/.so. This greatly limits its potential.
Perhaps I have not expressed my point clearly enough. I asked to add the ability to select fbclient.dll/.so from any directory or set the path to it via environment variables (like FIREBIRD).
I think that the functionality and popularity of your application will increase several times.
Unfortunately, your application is currently using hard links to connect to fbclient.dll/.so. This greatly limits its potential.
I agree. I work in this.
./jo
Hello @zoltanleo, how are you? About the port number, if you are not using the defautt (3050) you can define it normally in the server reg. info, so Fr will override the default from the installation (obviouslly this isn't your problem) Windows only: About defining a specific library PER connection I'm not sure IBPP (the component used to interact with FB) is able to support it :\ some conversation was done to the "new" IBPP driver, but hasn't evolved since a long time I use regularly FR with the fbclient.dll in the same folder of the FR installation, this doesn't work for you? You could even use fbembed.dll, that works fine for remote databases too
Also, if you what to use embedded (without Fb server running) you already can do it with current Fr, just keep "server" variable empty, and place your fbembed.dll (if Fb2.5<) or fbclient.dll(Fb3.0>) (and additional DLLs icu*, msvc, intl folder or whatever you need) in the same folder of Fr
Also, if you what to use embedded (without Fb server running) you already can do it with current Fr, just keep "server" variable empty, and place your fbembed.dll (if Fb2.5<) or fbclient.dll(Fb3.0>) (and additional DLLs icu*, msvc, intl folder or whatever you need) in the same folder of Fr
Hi, @arvanus. Thank U for the answer.
I will try to put fbclient.dll near with the executable. But this is a workaround, but not a solution to the problem.
I also have this issue. Firebird is installed in a non-default folder and with a non-default port. I copied fbclient.dll to the %windir%\system32 directory, and I am still getting this error. Anyway to fix that?
In my case the issue was probably because I used flamerobin 64 bit. I uninstalled and reinstalled flamerobin 32 bit, and it solved the issue
Hi @zoltanleo
Could you please retest this issue on FlameRobin 0.9.3.12 and close it if it is no longer reproducible?
Thanks in advance, Luciano
Could you please retest this issue on FlameRobin 0.9.3.12 and close it if it is no longer reproducible?
Hi Luciano.
I'm sorry. But the issue is not resolved. To understand my problem, I attached a screenshot of the connection to the same database for IBExpert (ignore that I use a 32-bit fbclient for a 64-bit server. IBExpert is always a 32-bit application).
I'm reworking DLL loading order, as looks like Fb x64 has a strange design behavior https://github.com/FirebirdSQL/firebird/issues/6979 The new order will be:
Hi @Jdochoa and @arvanus
Suggestion to partially fix this issue. Search for the fbclient.dll library before attempting the connection following this priority:
1. Current FlameRobin directory 2. %ProgramFiles%\Firebird\Firebird_4_0\fbclient.dll 3. %ProgramFiles%\Firebird\Firebird_3_0\fbclient.dll 4. %ProgramFiles%\Firebird\Firebird_2_5\bin\fbclient.dll 5. %SystemRoot%\system32
Best Regards, Luciano
I'm reworking DLL loading order, as looks like Fb x64 has a strange design behavior FirebirdSQL/firebird#6979 The new order will be:
1. specifically defined path 2. local directory fbembed 3. local directory fbclient 4. PATH and System directories 5. Look at Win registry for Fb setup folder 6. gds32.dll
Hi @Jdochoa and @arvanus Suggestion to partially fix this issue. Search for the fbclient.dll library before attempting the connection following this priority:
1. Current FlameRobin directory 2. %ProgramFiles%\Firebird\Firebird_4_0\fbclient.dll 3. %ProgramFiles%\Firebird\Firebird_3_0\fbclient.dll 4. %ProgramFiles%\Firebird\Firebird_2_5\bin\fbclient.dll 5. %SystemRoot%\system32
Best Regards, Luciano
Hi @arvanus.
If you look the source code, actually the order is: 1.- Specifically defined path. 2.- Specifically defined path for parameter. 3.- Local directory for fbembed.dll. 4.- Local directory for fbclient.dll. 5.- Windows Registry for fbclient.dll 6.- Windows Registry for WOW64\fbclient.dll 7.- Windows Registry for bin\fbclient.dll (FB 2.5-) 8.- Windows Registry for bin\WOW64\fbclient.dll (FB 2.5) 9.- Path and system directories. 10.- gds32.dll.
IMHO all options are covers.
./jo
So, the problem lies exactly here: For the default configuration for x86 builds you get an error trying to connect to an Fb server thar requires chacha plugin, to avoid this I'll swap the order moving item 9 to be before 5
6.- Windows Registry for WOW64\fbclient.dll 8.- Windows Registry for bin\WOW64\fbclient.dll (FB 2.5) 9.- Path and system directories.
Other users had this problem, and they solution was to always copy fbclient.dll to Flamerobin directory
About item 2
2.- Specifically defined path for parameter.
Looks like you are not using this option, but I can easily missed this
So, the problem lies exactly here: For the default configuration for x86 builds you get an error trying to connect to an Fb server thar requires chacha plugin, to avoid this I'll swap the order moving item 9 to be before 5
6.- Windows Registry for WOW64\fbclient.dll 8.- Windows Registry for bin\WOW64\fbclient.dll (FB 2.5) 9.- Path and system directories.
During my tests, the error is not fixed with the order you propose. The best request was the one left. I think choosing the correct version of fbclient.dll should be the responsibility of the user.
About item 2
2.- Specifically defined path for parameter.
Looks like you are not using this option, but I can easily missed this
It was left for compatibility with IBPP
I'll pull a change to my repo. Can you can try from there? Also I'm doing this change https://github.com/mariuz/flamerobin/issues/332
Currently, for Windows, your application is probably trying to load the fbclient from %windir%\system32. This works if the firebird was installed by the regular installer. However, if I run the portable firebird as an application with a non-standard port number (e.g., firebird.exe -a -p 3051) without installation, flamerobin throws the expected error
Can I ask you to add new functionality to the program that would allow you to specify the client library explicitly?