BlackFish SQL, the .NET database installed with recent versions of Delphi, is not part of Delphi XE... and it seems Embarcadero pulled the plug on it.

BlackFish SQL Gone

According to the Delphi XE FAQ:

Is Blackfish SQL still included with Delphi? Blackfish SQL is no longer included with Delphi as of the XE version. We recommend InterBase which is available in multiple configurations is a great choice as an embedded database.

BlackFish SQL started with JBuilder, was a complete SQL database written in Java, great for small or embedded applications, and was ported to C# with an automatic tool to create a fully compatible .NET version. Nice for small demos, you had to pay for deployment, and while it could be used for Delphi .NET development, it made little sense to use a managed database engine for a native Delphi application. I guess very few licences were ever sold and that it will be discontinued, sold, open-sourced (in case some developers really care), or anything like that. I doubt many Delphi developers will ever notice.

Delphi and Local Database Engines

Still, this opens up an interesting topic. In the early days, for simple applications (and even some large ones) the natural choice for Delphi developers was Paradox. Later on (with Paradox disappearing) many developers used another simple local database, Microsoft Access (and many still do). At the same time, the company pushed for migrating towards full relational databases, including their very own Interbase. Many Delphi developers picked that direction, but for some it was way too complex for the task at hand.

In parallel, there has been a lot of interest around fast and powerful ISAM databases that added fast SQL processing without giving up their navigational nature. Unlike a relational DB, with a navigational one you can open a million records table in a grid and let the user browse it (not that this is a great idea, though). This makes porting existing code incredibly faster and minimize changes in the user interface of classic applications. Two good Delphi-related examples (out of dozens, sorry for those I'm not mentioning) are Advantage Database Server and Nexus DB. Before you ask, similar tools don't lack much of the features of big brothers, work on networks and over the Internet, provide hot backups, replication, triggers and stored procedures, encryption, and much more.

While far from common for enterprise applications (in which you might have to comply with the database choice of the customer), similar databases are really great for ISV and web applications and in many other circumstances. I really think Delphi has lacked a local and simple option, and suggesting people to buy the cheap "Interbase To Go" or pick the free Firebird Embedded still doesn't address the original concern. With Delphi core dataset classes and data-ware controls still bound to a navigational model, a navigational database can really make simple applications fast to write and fast to execute.

Any Room for a Local Delphi DB?

So I still hope Embarcadero can address this issue in the future, offering a nice local engine (a third party one or on open source one could do) for the Professional version... and maybe a future free or very cheap version of the product, as it was in the early days. Having removed most dbExpress connectivity options from the Professional versions, the current best options are still Microsoft Access, third-party databases with custom components, or third-party data access components. Sure, we like options, but I think this something far from optimal for the product, particularly at an entry level. So I ask, is there room for a local Delphi database in the box?