September 3, 2010
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. But what about having a native alternative?
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?
posted by
marcocantu @ 2:20PM | 32 Comments
[0 Pending]
32 Comments
BlackFish SQL Gone in Delphi XE, What About a Replacement?
I have heard some good things about SQLite
http://sqlite4delphi.sourceforge.net/
Comment by Stijn Sanders
[http://yoy.be/]
on September 3, 15:06
BlackFish SQL Gone in Delphi XE, What About a Replacement?
The best options IMHO are rather:
* FireBird Embedded: you've already got the components
for it, the same as those for Interbase & FireBird.
* SQLite: if you need performance and reliability in a
small local package, nothing else comes close.
I wouldn't consider Access as being anywhere near one
of the "best options" though.
Comment by Eric
[http://delphitools.info]
on September 3, 15:18
BlackFish SQL Gone in Delphi XE, What About a Replacement?
Why not to choose SQLite as a replacement? It's
lightning fast, powerful, free and open source. Delphi
developers can only benefit from having native access to
SQLite.
Comment by liquid on September 3, 15:20
BlackFish SQL Gone in Delphi XE, What About a Replacement?
Paradox/BDE is still there and works reliably with XP,
Vista and 7. Unsupported? Well, we never know when
some of the independent vendors will disappear also.
Comment by Paradox on September 3, 15:39
BlackFish SQL Gone in Delphi XE, What About a Replacement?
My personal opinion - the third-party data access
components are much more stable, better supported and
provide a better access to the specific features of
the particular databases than dbExpress. The only
reason to use dbExpress IMO is to support a single
codebase for a lot of different database servers - a
very rare case really.
As for local DB engine as a part of the product - it
would be interesting for students, beginners and
hobbyist programmers, but I am afraid the current
company policy is to ignore them totally.
Comment by Serg
[http://sergworks.wordpress.com]
on September 3, 16:12
BlackFish SQL Gone in Delphi XE, What About a Replacement?
Little strange!
Honestly - I never understood why thy did not put it
out in more public or at least well document it. If
they would a least have had a managment facility ...
this takes too long. There must be a command shell --
> help .... at least or like nexusdb a web
interface...
Maybe having a DB based on managed code ... I think
we all have understood ... nice but you have now
still SQL Server in kind of CE and Express... and as
you mentioned Access (the service library of Anydac
now has the repair built in and had support for
Blackfish SQL too). Honestly one needs a lot to
overcome Nexus DB.
Mike
Comment by Michael Thuma on September 3, 16:12
BlackFish SQL Gone in Delphi XE, What About a Replacement?
If they're taking a cross platform strategy, starting with OS X, then SQLite
is the clear first choice. It's widely used by developers using Apple's tools
so it would fit right in.
It would also be the natural choice for any potential smart phone
development. iPhone databases are generally in SQLite, and from what I
understand that's what is being used by Droid apps (though I could be
mistaken there). If Apple ever come to their senses and we can develop in
Delphi for iWhatever devices the database would be the same as
everyone else uses.
Comment by Ron Grove
[http://www.evanoah.com]
on September 3, 16:49
BlackFish SQL Gone in Delphi XE, What About a Replacement?
Marco,
that's bad news but not a really suprising me ... BF is really a treasure
on the db-market but less people have realized this in the past (like
IB with the Asthon-Tate deal in 1992, where everyone only think
about dBase).
some big advantages for me:
* ReadOnly-possible (running a jds - database from a DVD)
* two-fish encryption (only the 16 bytes of every datablock is
"readable“)
* really high-performance for:
stream-reading
Dataware-like app‘s
high transaction-work isn‘t a problem
+ with default 4kb-blocks -> 8 TB max for every database
+ support until 32kb-blocks....
+ incredable limits, meaning only theoretical a limit
+ running in the JAVA- or .net-Framework
+ small server-app-size: < 2 MB! (+ framework)
+ near to 0%-Deployment
+ 2 files for the database (*.jds & *.loga)
+ SP and Trigger create in any Java and any .net-language
+ ADO.net (.net)
+ dbx4 (win32)
+ JDBC (JAVA)
In 2003 was my first contact with NDataStore and I know some big
jds-databases (not GB-size, more!!). They run since 2000 on
mainframes with Java and it works great, not more or less ... after
resign of some developers in 2005 NDataStore was death, and now is
the 2nd death of the great database, but on the market you find a lot
of good databases, commercial and free and without acitivities (active
maintaining and improvements, e.g. .net-version support) and
marketing no database can be successful on the market.
I made in the past some inhouse-trainings about BF or talk on
conferences about BF, amazing results in the database was possible.
so long BlackfishSQL. I loved this database really.
Like last post on my blog: Time to say goodbye :-(
Comment by Thomas Pfister on September 3, 16:55
BlackFish SQL Gone in Delphi XE, What About a Replacement?
With Interbase SMP available as Server, Desktop and To-Go edition, it's
certainly good enough to replace BlackFish.
Of course IB is not free - which might be the reason for some user not to
even evaluate it.
http://www.embarcadero.com/products/interbase-smp/product-
editions-for-me
Comment by Olaf Monien
[http://www.monien.net/blog]
on September 3, 18:11
The "database noone needed"
I predicted it over one year ago... ;-)
Comment by Luigi D. Sandon
[http://www.sandon.it/?q=node/37]
on September 3, 18:30
BlackFish SQL Gone in Delphi XE, What About a Replacement?
I heartly recommend Accuracer:
http://www.accuracer.com/
It's very fast (they clame being the faster BDE
replacement), is a single file database, ... an has
alot of nice features:
+ Client/server database engine with server component
and custom messages
+ Easy-to-use multi-user (file-server) database engine
+ Multi-thread access
+ Storing all tables inside the single database file
+ Embedded database: no BDE, no DLLs
+ SQL'92 (DML & DDL) support
+ SQL stored procedures and functions support
+ Referential Integrity support (SQL'99 compliance)
+ 100% Unicode support - SQL, filters, database
objects names
+ Easy-to-use changes detection and write failures
detection
+ Fully compatible with standard DB-aware controls
IProvider Support (ClientDataset)
+ Small footprint and low memory usage
+ In-Memory tables support for the fastest data access
+ Varchar and BLOB field types with optional data
compression
+ Strong database encryption with wide variety of
algorithms and modes
+ Transactions support with READ COMMITTED isolation
level
+ BatchMove component
+ Reverse engineering (tables to SQL script export)
+ Backup and Restore support
Triggers - database and server events
+ Capability of database embedding inside the
executable file
+ ODBC Driver available
+ Windows / Linux cross-platform database engine
+ No royalties
+ Native Delphi database, full source code available
+ Ideal as BDE replacement - does not require any .dll
and includes data transfer utility.
Comment by Ciprian Popa on September 3, 19:15
BlackFish SQL Gone in Delphi XE, What About a Replacement?
Is this really an 'issue'? Use SQLite. Best local
db system out there. imo, the only thing blackfish
was good for was taking up disk space.
Comment by JerseyGuy on September 3, 19:16
BlackFish SQL Gone in Delphi XE, What About a Replacement?
I really hope Borland drop the idea of trying to make databases. Let them
focus on what they really can do - Delphi.
Lets hope they stop spilling resources in dying breed projects like X
Builder, C# Builder, Turbo Prolog (anyone), etc... the list is endless. One
day out of curiosity I made a list of about 50+ projects
Borland/Inprise/CodeGear/Embarcadero started and then trashed. If only
this energy and tallent was spent in the right direction (read Delphi) by
now we should have already had x64, MacOS support, Mainframe
support, AppEngine, parallel execution, 10 times bigger RTL.
I hope Borcadero does not start a Delphi database of their own. They
simply can make DB Express compilable within the executable and write
good driver for SQLite. Sufficient enough I believe.
Comment by Gad D Lord
[http://www.mtgstudio.com]
on September 3, 19:32
NexusDB Embedded
I would like to take this opportunity to mention that
an embedded version (DCU only, no source) of NexusDB
without any artificial restrictions is available free
of charge:
http://www.nexusdb.com/support/index.php?q=FreeEmbedded
It includes full support for both navigational access
through TnxTable and SQL:2003 support through TnxQuery.
Version 3.05 with support for Delphi XE will be
published in the next couple of days (it's already
going out to paying customers, the free version sits
at the end of the queue and will be published once QA
is done on the installers).
Comment by Thorsten Engler
[http://www.nexusdb.com/support/index.php?q=FreeEmbedded]
on September 4, 03:16
Finally
The only thing that wonders me is what took them so
long or why they even started Blackfish. About the
only one who uses it are the Embarcadero
newsgroups/forums which exactly aren't a sample of
showcase reliability.
The obvious *embedded* database replace is SQLite. It
already won on about every other platform (IPhone,
Android, OSX, Symbian, many Windows apps, etc.). It is
supported natively in many languages like Android Java
and PHP.
Delphi should provide SQLite support out of the box,
because that is what outsiders and newbies expect. No
matter how good NexusDB, ElevateDB and Advantage are.
The time for small esoteric Delphi databases is over
and the competition is wider spread, has more embedded
features, is faster, open source and not unimportant
is cheaper (like free).
If you need a real DB server then the picture is
different though.
Comment by Jan Derk on September 4, 10:27
BlackFish SQL Gone in Delphi XE, What About a Replacement?
Considered Apple's iOS operating system (iPhone, iPod, iPad) has
standardized local storage on SQLite (often hidden behind Cocoa Touch
classes, but SQLite nonetheless), maybe this is the way to go for Delphi
as well?
Comment by Stefan van As on September 4, 14:12
BlackFish SQL Gone in Delphi XE, What About a Replacement?
Honestly - I never understood why you like Advantage
Database Server. I use it at work and it is so
ondfashion and so unstable ... Lucky we are now changing
to msSQL
msSQL is also a fine replacement for BlackFish SQL ..
Comment by on September 4, 16:07
BlackFish SQL Gone in Delphi XE, What About a Replacement?
Hi Marco,
you are the guru on what is develop in Delphi since
jears. I wander now when I look back on the earlier
versions of Delphi, and accepting lot of impovements
and costs I see that in DB development the
Professional XE ios not far away fron Delphi 5
Standard. This is wrong for all developers of small
applications.
Comment by p_miclea on September 5, 11:52
Two different needs
IMHO Delphi has two different needs to cover. One is
the need of an embedded/local database, cheap and
easy to deploy. And here SQLite is hard to beat. The
other is the need for a small database for one to few
clients C/S applications, with a door open to large
installations. This choice is more difficult, because
as an application grow needs may be different. Scaled
down versions of high-end RDBMS could be a sure bet
(especially since some customers may alredy have
them), while some small database engines may look a
more risky choice, especially if what is bundled is a
too limited version. One of the issue is that the
more you have to offer, the easier is to build a
limited version. When the full product is already too
limited, it is difficult to take away features
without ending up with a little usable one. That's
true, for example for Delphi and Interbase too.
Comment by Luigi D. Sandon on September 5, 18:54
BlackFish SQL Gone in Delphi XE, What About a Replacement?
SQLite for pure embedded (single-user).
Firebird for all other uses.
Both are free, well-supported, etc.
Comment by Maxim
[]
on September 6, 05:45
BlackFish SQL Gone in Delphi XE, What About a Replacement?
It seems to me that Embarcadero is loosing it's
way.Cuting down the database options from profesional
edition was and is wrong.MSSQL support and at least
ado connection should be in the prof version.I use
SQL Lite, but it's not all shining ..Expand usage of
profesional version , cut the prices and for love of
god MAKE HELP FILES and SAMPLES readable again
Comment by mig640 on September 6, 10:59
ElevateDB
I would recommend they lisence ElevateDB, the new
version of dbisam. It suports unicode, sql, views,
triggers, stored procs -- a fantastic piece of native
delphi artwork.
Comment by Jon Lennart Aasenden
[http://delphimax.wordpress.com]
on September 6, 11:21
BlackFish SQL Gone in Delphi XE, What About a Replacement?
>mig640
ADO is present in professional version (under dbGo
catagory) - see version matrix
Comment by Radek
[http://delphi.cz]
on September 6, 15:27
PostgreSQL
For a server based database engine i would recommanded
this. It is free in any way, no strings attached.
Comment by Ben Collins on September 7, 07:28
BlackFish SQL Gone in Delphi XE, What About a Replacement?
TurboDB for VCL
I would like to mention TurboDB as a fine
Paradox/Blackfish replacement.
Compared to SQLLite it is written in Delphi, so you
can compile it completely into your application. No
COM, no DLLs, no ADO, no configuration, not registry
entries...
Compared to other local embedded databases mentioned
above it has very fast multi-user access.
Comment by Peter Pohmann (dataweb)
[http://www.dataweb.de/en/products/delphi_database.html]
on September 7, 12:53
BlackFish SQL Gone in Delphi XE, What About a Replacement?
+1 on Jon Lennart comments
License DBISAM, Greate piece of work!
Comment by Mane on September 7, 18:25
BlackFish SQL Gone in Delphi XE, What About a Replacement?
use DBF.
Or use Firebird Embedded.
Comment by Edmar Frazão on September 8, 23:55
BlackFish SQL Gone in Delphi XE, What About a Replacement?
Firebird is fantastic, embedded or not
You can use the out the box components or get
freeware's or buy 3rd parties (worth every cent)
Blackfish: Another stupid resources waisted (like .NET
crap) instead of 64 bits/cross compiling. Even
interbase, it is a waste (who really buys it?) they
should re-conciliate with firebird join forces to
incorporate the best of both and make money on the
support or offering better utilities tahn the
open-source world.
But then again this company (or the string of) has
been famous for its "Head in the a.." vision and
marketing.
Comment by Philippe Watel on September 10, 07:49
BlackFish SQL Gone in Delphi XE, What About a Replacement?
When looking at all these databases you should also
look at the Zeoslib database components. These
components work with a range of databases. I found
they worked exceptionlly well with Mysql and SQLite.
I did find it was a bit slower with MS SQL compared
with MSSQL/ADO compo. Gee maybe the developers of
MSsql know a bit about ADO. or vs versa
From their website the list of database's it supports
MySQL, PostgreSQL, Interbase, Firebird, MS SQL,
Sybase, Oracle and SQLite.
So in theory it should make switching to a different
database reasonable easy. I have made utilities were
you can open different databases at runtime you just
enter the connection details. Of course that's the
easy bit. It might require a bit more effort with a
larger application.
So it may partially solve the upgrade to a bigger
database requirement option.
Comment by Brian on September 11, 05:48
BlackFish SQL Gone in Delphi XE, What About a Replacement?
DBISAM from ElevateSoft has worked great for me when
I require a local database. No BDE, plus a host of
additional features like a client/server engine (if
needed), "in memory" tables, and excellent support.
Comment by Gikas Markantonatos
[http://customsystem.com]
on October 1, 14:43
BlackFish SQL Gone in Delphi XE, What About a Replacement?
A native Paradox engine is a good solution. We use
Paradox Tables over 12 years. It is a performant,
stable and well tested format. The only problem on
newer OS like Vista and Windows 7 is the really
unneeded shared memory in the BDE. I wrote an entry
in Quality Central. But maybe it is 10 years to late.
Comment by
[]
on October 26, 06:37
BlackFish SQL Gone in Delphi XE, What About a Replacement?
I say to you, OBJECTS!
Move to something for easy storage of objects. Most
everyone is or has moved to using objects. Delphi
should move into the future and eliminate the "object-
>relational" headache by making storing objects
seamless.
I can't believe I even have to post this.
Comment by Rich on March 3, 01:38
Post Your Comment
Click
here for posting
your feedback to this blog.
There are currently 0 pending (unapproved) messages.