Firebird native support

Firebird is a database server, free of charge, used around the world.
Does Xojo intend to support Firebird natively? If not, why?

If demand were to warrant us investing the time & effort to create a plugin for it we’d consider it.
But demand has been nonexistent.

However, a third party could certainly create a DB plugin for it

MBS SQL Plugin does that:
https://www.monkeybreadsoftware.de/realbasic/plugin-sql.shtml

Hey Norman,

I do believe there’s a chicken and egg aspect to xojo db usage. The natively supported DBS tend to be the more popular ones but they will also win out over the db’s that are not natively supported. Postgres fills a great role as a free DBMS, SQLite we all love. The one area that’s missing is an open source cross platform embedded DBMS, and firebird does fit that requirement like few others. Christian does great work but native support would be great.

Well, it’s just a different provider of the plugin and it’s not bundled in the IDE.
But it’s also native code.

That looks like an interesting plugin, Christian. For a client program is it just a matter of installing the Firebird client library and the plugin?

[quote=67936:@Julian Mussi]
I do believe there’s a chicken and egg aspect to xojo db usage. The natively supported DBS tend to be the more popular ones but they will also win out over the db’s that are not natively supported. Postgres fills a great role as a free DBMS, SQLite we all love. The one area that’s missing is an open source cross platform embedded DBMS, and firebird does fit that requirement like few others. Christian does great work but native support would be great.[/quote]
SQLite is also embeddable (thats one of its primary design goals to be small light weight & powerful enough)
Its fairly widely used in phone apps etc

It would be wonderful if we could do everything and put it all in the product for one low price
But that’s not realistic - there’s no magic there - we have limited time, money, etc
So we don’t try to do everything & support everything

For new projects, I’d prefer SQLiteDatabase.
For existing projects you can use our SQL Plugin to connect to 10 different database types. And for Firebird, you just need the client libs for firebird.

I use SQLite extensively for my apps in single user mode but for multiuser I use Postgres, which is a wonderful DBMS but requires a bit of effort to setup and maintain. What I really want is something I can embed with my app’s installer, works cross platform and is free to deploy…not a lot of options in that category. I think the reliance on SQLAPI for firebird support was a bit of a concern, I was afraid of having to rely on two 3rd parties to roll out updates. With v3 slated to ship…sometime… this is a bit more of a concern. Perhaps the 3.0 API will make it easier to support natively.
I guess the point I was making earlier is that it would nice for XOJO to support a multiuser database that is “simple” to deploy. This goes with the XOJO “cross platform, easy to learn and powerful” philosophy. Honestly I wish CUBE sql was open source, although that might break their business model :wink:

[quote=68001:@Julian Mussi]I use SQLite extensively for my apps in single user mode but for multiuser I use Postgres, which is a wonderful DBMS but requires a bit of effort to setup and maintain. What I really want is something I can embed with my app’s installer, works cross platform and is free to deploy…not a lot of options in that category.
[/quote]
SQLITE ?

We used to have one - REAL SQL Server which you now know as Cube SQL

Multi user db’s require some kind of “set up”

Firebird can be used embedded or as client/server, either way the api is exactly the same. I understand as of v2.5 the embedded version no longer requires an exclusive lock on the database file either, the file can be accessed in read and write mode by multiple processes and/or multiple threads.

The Firebird server is a breeze to set up on Linux and Windows (don’t know about Mac) and ours has been buzzing along for 5 years now without a hiccup.

If Xojo offered native Firebird support then for developers using Xojo creating a program that scaled up from Firebird embedded to Firebird server would be far simpler than one that scaled up from SQLIte to Postgres or MySQL. It would not only be easier for the developer it would be easier for the end user too because the database file itself is the same format for both usage scenarios.

I also saw in another thread Thom commenting on how SQLite and MySQL both make a hash of handling string inserts/updates where the string is too long to fit in the field it’s being written too, I can confirm Firebird correctly throws an error in that scenario.

Sure DBMS do require setup. The difference between something like firebird and others is that the setup can be done as part of the install. For Postgres I have a module that handles the changes to the permissions, opens ports adds data locations sets the path for psql etc. It’s a bit of work, and has to be run after the app and separate db installer had been completed. Distribution packages like Postgres.app make thinks simpler but it’s still an extra step from the clients perspective.

Sounds like an excellent opportunity for a third party

I haven’t tried it, but Firebird ought to work with the ODBC plugin using its ODBC driver (which appears to be Windows/Linux only, unfortunately).

I have Firebird running with the ODBC plugin on Windows, works well as far as i can tell.

ODBC is a PITA at least on the Mac. I had a solution to move data from Valentina to Filemaker but no user was able to set this up on his/her own.

Have you looked at Studio Stable Database server? You can migrate from sqlite to SSD without the hassle of mysql or postgres.

what about connecting to firebird from xojo desktop application on mac?

if you have libgds.dylib or libfbclient.dylib libraries on your Mac, you can use MBS SQL Plugin to connect.

I agree with Julian that Christian did great work but native support would be great.
I beleive that all Firebird lovers (I am one of those) have to insist on the open request to have a Native Plugin.
Request #2159 is opened for a while and if all give it a force may be Xojo decided to pay attention on this feature in the near future.