Subject Re: [firebird-support] Re: Running with two different embedded versions of Firebird DB
Author Helen Borrie
Ed Dressel wrote:

> Any suggestions?
Several days ago, you wrote:

> We are in the middle of letter our users upgrade their database from
> 1.56 to 3.x at their will. Users can upgrade when they want to--so
> we install 1.56 embedded db as gds32.dll and 3.x as fblcinet.dll in
> the same directory (using IBObjects, we can select which DLL is
> used). Almost all of our users use the embedded version.

> The problem is when a database exception occurs--the "firebird.msg"
> file is used. Is there a way to configure the name that the DLL uses
> for the firebird.msg file? Or should the FB databases be installed
> in separate sub directories? Any suggestions here would be appreciated.

When I read that, I groaned and let it go. This is not a sane way to
deploy an upgrade from a 15-year-old engine to Fb3 (or any full
upgrade, come to that!). So, to avoid trying to write a small book,
I'll make a few suggestions in the hope that you'll start to see that
this isn't a task for the Tooth Fairy.

1) It's not a question of where the databases are installed. The ODS
10.1 and ODS 12 dbs could be in the same subdir, if their names are
different. Use aliases in the respective .conf files to distinguish
them, so that your application will connect to the right one. But
deploying the databases in separate subdirs won't solve the problems
you're planning to create here.

2) I suppose you are aware that the Fb3 engine can't connect to a
sub-ODS 12 database.

3) The rules for deploying embedded apps haven't changed. You still
have to have completely separate and self-contained file structures
for each embedded app, with the Firebird components in their correct
places relative to the application executable. These relative places
are not the same for v.1.5 and v.3.0 so you'll need to study release
notes very thoroughly and TEST your assumptions.

> Almost all of our users use the embedded version

4) Taking 3) into account, if you are deploying the software in
company with full server versions, this whole thing could become a
total mess really quickly.

5) Give up on this idea of letting the users choose. Give them test
versions beforehand if necessary, but have them make the choice before
you deploy; test what they have chosen to make sure it works as
expected; then deploy just that.