[fpc-pascal] Re: Interbase vs Firebird header translation

Reinier Olislagers reinierolislagers at gmail.com
Fri Aug 17 12:10:44 CEST 2012

On 17-8-2012 11:47, Graeme Geldenhuys wrote:
> I started a new message thread, as it doesn't really relate to the
> origin thread any more.
> On 17/08/12 06:50, LacaK wrote:
>> BTW: packages/ibase is intended to be translation of Firebird client >
> API not Interbase, right ?
AFAIK, it's intended to be both Interbase 6+ and Firebird 1+.
Once again, AFAIK, there have been no big changes in the sqldb IB code
in ages. Even my recent patch to improve BLOB performance corrected
ancient pre-IB6 era API handling.
Practical suggested solution: I'd split out the current code and stamp
it IB6+, let anybody interested deal with it.
Then the FB code can focus on Firebird.
See below for more details.

I've never heard of anybody using it with Interbase (or, more
positively, of anybody having any problems with it and Interbase).

Interbase and Firebird features have indeed since diverged. I.e.
apparently Interbase has had support for boolean datatype for a while
now, while as you and I mentioned in the other thread, FB3 will start to
support boolean.

The way boolean supported probably differs; I don't use interbase though
so couldn't say. There are other changes; apparently IB has encryption
facilities etc.

As for Firebird 2: there have been some more built-in SQL function
keywords over the years, optimizer changes etc... by heart, nothing that
should really influence sqldb.
Perhaps there are changes though that can be applied; given FB's great
backward compatibility we might be sending inefficient stuff over the
wire/not support new features I've forgotten.

There have been changes in the Services API; Ludo's recently added unit
AFAIK targets FB 2.x (works on my tests with 2.5).

IIRC Firebird 3 will have modular encryption of the traffic between
client and server, boolean datatype, support for stored procedures in
external languages (Java, C++, who knows, perhaps FreePascal).. though
whether the latter will require different driver code at the FPC end, I
don't know
See http://www.firebirdsql.org/en/server/

As for splitting up the units: presumably it would make sense to split
FB and IB. We can leave the current IB6 era functionality for IB and let
anybody interested update that.

Regarding FB2/FB3, FYI please note this snippet in the other thread: my
post and Michael's reply:
>> OT: that would be useful for another reason.
>> Firebird 3 will introduce the BOOLEAN datatype and other innovations
>> (encrypted connections, etc).
>> Interbase has had BOOLEAN support for a while now.
>> It would be nice to be able to support new functionality without
>> sacrificing the ability to connect to older clients.
> That has nothing to do with dyn versus static linking.
> You can perfectly detect which library version you are loading, and enable/disable certain functions based on this. 

Good luck,


More information about the fpc-pascal mailing list