Jump to content
Jasonjac2

Is anyone using IBX (Interbase Express) and compatibility question

Recommended Posts

Hi,

I'm doing a talk this week (15th Feb 2022) for the ukDeveloper group www.ukdevgroup.co.uk as requested by a member.  It is about using the IBX components and implicitly Interbase & Firebird. I couldn't find any information about which versions of IB & FB the D11 version of IBX played well with and if there are any gotchas.  Does anyone have any input / insight into any of this?

 

Thanks in advance. 

Jason.

Share this post


Link to post

Hi,

I am using IBX on Windows (32 and 64bit) and Android (32 and 64bit). Database = Firebird (2.5 and 3.0). In Delphi 11, I have not found any problem.

  • Like 2

Share this post


Link to post

While I do not support Firebird, I also try not to introduce incompatibilities.  As long as Fb does not break backward compatibility you should be ok.  There is one caveat with this and it is more around the service API I think.  In most cases the Fb developers made sure to introduce new constants in a range higher than the original 6.0 open source release so they would not overlap with new ones introduced by IB.  With the service API though they just started at the next number so there are instances that Fb constant reflects a different function than the IB one.

 

For the past 22 years though there have been very few incompatibilities.  One of the reasons I went to an Interface/registration type system (see IBX.IBIntf.pas) for loading and resolving the client interface was so the Fb users could easily create a FbServer (which would look much like IBServer) class and intercept when data needs massaging to Fb constants before being sent to the server.

 

Some new features may or may not work like the RAD 11.0 PrecommittedReads feature to do reads through a connection-level pre-committed transaction so the dataset can stay open forever without causing OIT/OAT issues.  I do not know if Fb ever copied that feature from IB.

Share this post


Link to post
On 2/13/2022 at 3:33 PM, Vandrovnik said:

Hi,

I am using IBX on Windows (32 and 64bit) and Android (32 and 64bit). Database = Firebird (2.5 and 3.0). In Delphi 11, I have not found any problem.

Interesting, I certainly prefer Firedac (why is the FDPhysFBdriver is not compatible is to me largely incomprehensible) and never think to use IBX instead 😲!

 

I have tried other third party components to reach a Firebird DataBase like ZEOSDBO or UNIDAC,  succesfully (even if deploying firebird on Androïd is really challenging the firsts times :classic_biggrin:)

Share this post


Link to post
On 2/17/2022 at 6:55 AM, Serge_G said:

Interesting, I certainly prefer Firedac (why is the FDPhysFBdriver is not compatible is to me largely incomprehensible) and never think to use IBX instead 😲!

I have tried other third party components to reach a Firebird DataBase like ZEOSDBO or UNIDAC,  succesfully (even if deploying firebird on Androïd is really challenging the firsts times :classic_biggrin:)

Hi Serge, thanks for replying.  I didn't understand: "why is the FDPhysFBdriver is not compatible is to me largely incomprehensible" - do you mean it doesn't work at all or on certain versions of FB?

FB on android - I wasn't sure that people were doing this - which version did you use?

On 2/16/2022 at 6:40 PM, Jeff Overcash said:

While I do not support Firebird, I also try not to introduce incompatibilities.  As long as Fb does not break backward compatibility you should be ok. 

For the past 22 years though there have been very few incompatibilities.  One of the reasons I went to an Interface/registration type system (see IBX.IBIntf.pas) for loading and resolving the client interface was so the Fb users could easily create a FbServer (which would look much like IBServer) class and intercept when data needs massaging to Fb constants before being sent to the server.

Some new features may or may not work like the RAD 11.0 PrecommittedReads feature to do reads through a connection-level pre-committed transaction so the dataset can stay open forever without causing OIT/OAT issues.  I do not know if Fb ever copied that feature from IB.

Thanks Jeff - I hadn't looked into the bowels of IBX and didn't realise you had a level of abstraction in there for constants etc.  Your last line makes me realise I need to spend more time keeping up with developments on IB & FB! 

On 2/13/2022 at 2:33 PM, Vandrovnik said:

Hi,

I am using IBX on Windows (32 and 64bit) and Android (32 and 64bit). Database = Firebird (2.5 and 3.0). In Delphi 11, I have not found any problem.

Thanks for the vote of confidence in them.

Share this post


Link to post
2 hours ago, Jasonjac2 said:

Hi Serge, thanks for replying.  I didn't understand: "why is the FDPhysFBdriver is not compatible is to me largely incomprehensible" - do you mean it doesn't work at all or on certain versions of FB? 

FB on android - I wasn't sure that people were doing this - which version did you use?

Ah, I was not so clear. FDPhyFBDriver is not compatible with Android and IOS. It's not a FB version problem.

 

I use only FBclient on Android (Firebird 4 or 3 no matter) and connect to a Fb 2.5 server (without any problem) but only with ZEOSDBO components.

Vandrovnik change some part of IBX.IBIntf.pas to access Firebird instead of Interbase   (see this discussion)

 

3 hours ago, Jasonjac2 said:

Thanks for the vote of confidence in them.

I am not so optimist I think (and really prefer Firedac)

Share this post


Link to post

If I remember correctly, IBX does not officially support Firebird. I would rather go with the FireDAC framework instead. 

The FireDAC framework also seems to have much higher priority than IBX from Embarcadero.

Share this post


Link to post

Just a quick note...

In addition to the cross-database platform FireDAC support for latest InterBase in RAD Studio releases, IBX continues to support all features of the latest InterBase releases (InterBase 2020, InterBase 2017 and earlier), on all platforms and architectures supported by RAD Studio 11.

 

So, as a developer, you can use either of these for good connectivity to InterBase from RAD/Delphi/C++Builder, for both Server and ToGo/IBLite editions, on any of the supported platforms. InterBase runs on all target architectures supported for RAD application deployment, including Windows, Linux, macOS, Android and iOS. InterBase is available for 32bit and 64bit on all of the above platforms.

 

I must say that both FireDAC and IBX continue to receive bug fixes as well in addition to feature updates, as necessary.

 

Please connect with Embarcadero Support team should you have a specific question about IBX support of InterBase (or post here for others to respond). 

 

Thanks!

Share this post


Link to post
39 minutes ago, Sriram said:

Just a quick note...

In addition to the cross-database platform FireDAC support for latest InterBase in RAD Studio releases, IBX continues to support all features of the latest InterBase releases (InterBase 2020, InterBase 2017 and earlier), on all platforms and architectures supported by RAD Studio 11.

So, as a developer, you can use either of these for good connectivity to InterBase from RAD/Delphi/C++Builder, for both Server and ToGo/IBLite editions, on any of the supported platforms. InterBase runs on all target architectures supported for RAD application deployment, including Windows, Linux, macOS, Android and iOS. InterBase is available for 32bit and 64bit on all of the above platforms.

I must say that both FireDAC and IBX continue to receive bug fixes as well in addition to feature updates, as necessary.

Thanks and all noted.  The talk wasn't pitching IBX as the best solution.  I like it for its simplicity wrapping InterBase and Firebird, but FireDAC has some pretty amazing features and rich support for a lot of back ends.  Thanks all again for your input.

Share this post


Link to post
4 hours ago, Jasonjac2 said:

FireDAC has some pretty amazing features and rich support

Agree 100%

Share this post


Link to post
9 hours ago, Jasonjac2 said:

... but FireDAC has some pretty amazing features and rich support for a lot of back ends.

Unfortunately there is no FireDAC C/S connection possible for Delphi Professional.

(And also no C/S Add-on Pack anymore I think)

 

(My knowledge of this might be out of date because of those policies by Embarcadero.)

 

Share this post


Link to post

Add-on Packs have long been removed for FireDAC

Share this post


Link to post
12 minutes ago, Stano said:

Add-on Packs have long been removed for FireDAC

Ah yes, I had forgotten about that.  So (stating in case my assumption is wrong), FireDAC won't let you do a remote TCP connection to IB or FB.   IBX will allow that and is available in Pro (Sorry, I'm on Enterprise and so not sure what is in the Pro).  I know a couple of our members (www.ukdevgroup.co.uk) were upset when the CS add-on pack went away.  I did think that EMBT may have brought it back, but I don't think it is going to happen.

Regards, JAC.

Share this post


Link to post

Professional has FireDAC. But he doesn't have his * .pas

Share this post


Link to post
Just now, Stano said:

Professional has FireDAC. But he doesn't have his * .pas

And in professional that version of FireDAC can't connect to a server. It can only make local connections.

 

With IBX you can make connections to a server.

 

  • Like 1

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×