Jump to content
Darian Miller

InterBase or Firebird?

Recommended Posts

Ancient subject, but after years of progress on both sides... how does it look today for a new, small Windows desktop project?  Don't need outrageous speed, or size, just a dependable data store.  One nice feature is to be easy to backup/restore as needed.

 

Another alternative is PostgreSQL.

 

Does anyone even use InterBase anymore?

 

Edited by Darian Miller
Spellcheck

Share this post


Link to post
1 hour ago, John Kouraklis said:

For projects with local database, I would go for sqlite as it doesn't require a DB server.

Interbase and FireBird also got embedded versions without the need of a server. The databse files are compatible to the server version.

  • Like 1

Share this post


Link to post
Guest

Firebird has been working so well for me since version 1 that i have not been very interested in alternatives.

IB/FB would probably be a more "political" choice. IB is proprietary and FB is OS.

From what i gather PostgreSQL is a capable RDBMS functionality-wise too and it is OS too, even though a bit more commercial IMHO.

Q: Why do you need a full-blown RDBMS for a one-platform application? Perhaps Johns suggestion is better, depends on a lot of factors... perhaps some more info for better recommendations?

Share this post


Link to post

If you only check for those 2 alternatives and only windows target my heart say Firebird as Dany Marmur I had no problem with since first version.

if you want some encrypted column the choice is Interbase (native column encryption).

Now if your targets are multi os, till now i don't access directly to Firebird database (client/server) on Android with Firedac but it works with IBDac. I don't test an embedded version of the database though.

So for multi-os I certainly will choose IB keeping in mind Firebird .

 

But if your project is not a multi-user one i vote for SQLite avoiding all database server deployment   

  • Thanks 1

Share this post


Link to post
Guest
3 hours ago, Serge_G said:

But if your project is not a multi-user one i vote for SQLite avoiding all database server deployment   

This definitely feels like a good advice. IMHO the "embedded" variations of all them "full-blown" are... "legacy functionality". It's usable when you have a RDBMS with a lot of functionality (triggers, procs et.al) that you want to "keep" and bring "down" scalability-wise. But if this is a NEW project that would require a NEW database AND you have all the control of both backend AND frontend then i'd be very questioning why you would go thought the "hazzle" of embedding a full-blown RDBMS as most functionality would be moot.

Share this post


Link to post

1) DB admin features - PostgreSQL

2) DB developer features - PostgreSQL / FireBird

3) Encryption, and ... speed - InterBase. On many tests IB outperforms FB, at least.

4) Mobile platforms - InterBase

5) Change Views is unique InterBase feature

 

If to put SQLite into this list, then if you does not need multi-user access, scalability, DB is relatively small, then SQLite is the right way. If something from this list is not true, or may become false in future, then not SQLite.

 

Quote

Windows desktop project?  Don't need outrageous speed, or size, just a dependable data store.  One nice feature is to be easy to backup/restore as needed

In order of descending preferences - SQLite, IbToGo / Firebird embedded, PostgreSQL

  • Like 2
  • Thanks 1

Share this post


Link to post
23 hours ago, John Kouraklis said:

For projects with local database, I would go for sqlite as it doesn't require a DB server.

I would only use SQLLite for smaller mobile projects.  I have found that Firebird 3.04 performance is much better than SQLLite on my laptop and it has a richer set of data types and more features.

  • Like 2

Share this post


Link to post
On 3/1/2020 at 3:04 PM, Hans J. Ellingsgaard said:

Firebird is free. With Interbase you will have to pay for a license.

I think that was the main reason why we switched from InterBase to FireBird many years ago.

Share this post


Link to post

For local storage that won't have any chance to become client/server - SQLite. Otherwise FB embedded with elementary transition to FB C/S

 

  • Like 1

Share this post


Link to post
15 hours ago, eivindbakkestuen said:

Just grab NexusDB Embedded Free from GetIt, compiles directly into your windows app, only your exe to distribute.

Proprietary databases are a no go IMHO, when there are plenty of excellent alternatives.

  • Like 1

Share this post


Link to post
On 11/3/2019 at 6:13 AM, Dmitry Arefiev said:

1) DB admin features - PostgreSQL

2) DB developer features - PostgreSQL / FireBird

3) Encryption, and ... speed - InterBase. On many tests IB outperforms FB, at least.

4) Mobile platforms - InterBase

5) Change Views is unique InterBase feature

 

If to put SQLite into this list, then if you does not need multi-user access, scalability, DB is relatively small, then SQLite is the right way. If something from this list is not true, or may become false in future, then not SQLite.

 

In order of descending preferences - SQLite, IbToGo / Firebird embedded, PostgreSQL

I would only add one more point to this. IBLite is available for free for deployment to Windows, Linux, macOS, iOS and Android from RAD Studio. So, for your small local database file, if the database is going to be less than 100MB size, IBLite would work well. It will be free for your current needs, and if you need to upscale to C/S solution or other features like encryption or changed data tracking, it allows you to take your database file directly to InterBase ToGo or Server for a cost. https://www.embarcadero.com/products/interbase/product-editions

Share this post


Link to post

Firebird for Android - it works (embedded), but there is no 64bit version for Android at this moment. When you publish your app in Google Play, you need 64bit version too...

  • Like 1

Share this post


Link to post
22 minutes ago, Vandrovnik said:

Firebird for Android - it works (embedded), but there is no 64bit version for Android at this moment. When you publish your app in Google Play, you need 64bit version too...

How did you manage that ?

Using AnyDac component yes it works, but I don't achieve that with Firedac, FDPhysFBDriverLink is not available for Androïd. 

Using FDPhysIBDriverLink and changing library  I always run in a  "connection rejected by host" error (32 bits client/server app)

Using a 7.2 later beta ZEOSDBO I managed to get access to Firebird, but with the newer versions I can't even access to  library !

Share this post


Link to post
22 minutes ago, Serge_G said:

How did you manage that ?

 

Well, it was not a clean work... I am using IBX components. I took IBX.IBIntf.pas, created AndroidIBIntf.pas from it.

From TIBServerLibrary I have created my TAndroidIBServerLibrary and made a few modifications:

  • In .LoadIBLibrary, I copy Firebird's files from IncludeTrailingPathDelimiter(tPath.GetDocumentsPath)+FbDynClientAssetsDirectory to IncludeTrailingPathDelimiter(tPath.GetHomePath)+FbDynClientRunDirectory, because I did not manage it to work from original path.
  • In initialization, I set environment variables FIREBIRD_TMP and FIREBIRD_LOCK to a folder inside of tPath.GetTempPath
  • In .LibraryName, I return path to libfbclient.so

 

 

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

×