Subject Re: [firebird-support] Interbase/Firebird interaction?
Author Josef Kokeš
> This raises a couple of questions:
> 1) Are there any adverse conflicts between IB6.5 and Firebird in a
> situation like this ... i.e., would running AT against an IB6.5 engine
> ultimately damage the data?

I had some significant issues if I used FB to access an IB database
file. It was imperative to backup the IB database and restore it as FB
database. This might or might not be an issue for you if you distribute
a prepared database file (with all tables, procedures, triggers etc.
created); if you instead create the database file from scratch, then you
should be OK.

Also, some statements behave differently under IB and FB (e.g. raise an
error in one and work normally in the other - some CASTs, I think, and
perhaps AS used in certain situations).

> 2) Is there some way we can determine at startup time whether there is a
> Firbird engine running or an IB engine? We might want to ensure that AT
> is running in an environment served by Firebird only.

It is definitely possible to detect a version of Firebird by querying
various system tables (e.g. if RDB$GENERATORS has a RDB$DESCRIPTION
field, then the database is at least FB 2.0). I suppose you could do the
same for IB (check whether a field or table exists, which only exists in
one of the engines).

Josef