Jump to content
msd

FireDAC Alternative

Recommended Posts

I think about migrating all of our projects to one universal database VCL solution.

 

As I can see on this forum, FireDAC, there are some changes, one of which is not backward compatibility, and another small but painful change.

I'm using UniDAC, and it is OK, but it looks like FireDAC has a lot of improvements from version to version.

 

So, if someone has experience with this topic, please share your ideas, experiences, and real stories.

P.S. One more question: where is the official FireDAC support forum or website?

Share this post


Link to post

I think you should first tell your story. How did you come to the conclusion to change the Universal Data Access Components (UniDAC) to a 'universal database solution'?

Edited by Attila Kovacs
  • Thanks 1

Share this post


Link to post

FireDAC offers very many possibilities. I only know UniDAC for FB. The latter is very far beyond its capabilities. It needs to be well considered. It is a shame to lose them.

  • Thanks 1

Share this post


Link to post

Try Zeos - they are Open Source, with very good support.

And if you need direct DB access, you can use their ZDBC API which bypasses the TDataSet component so is faster, e.g. for a SELECT with a few rows.

 

  • Like 2
  • Thanks 1

Share this post


Link to post
18 hours ago, msd said:

if someone has experience with this topic, please share your ideas, experiences, and real stories.

Not sure how relevant this is or if it answers any of your questions but I switched form UniDAC to FireDAC last year. If I still used the Professional edition of Delphi, I'd still have UniDAC; if I needed Direct Oracle Access, I'd still use UniDAC. There are many other reasons to stay--this is just a short story of why I changed and what it took for my small apps.

  • Thanks 1

Share this post


Link to post

Why do you want to switch? As far as relational databases are concerned I do fairly see an advantage in switching at all. Just in case you build your own data access framework as Arnaud mentioned Zeos is one alternative and indeed FireDAC was designed for this and the component layer is really 'just' put on top in order to make the layered library more easy to use, to lower the learning curve. FireDAC as far as the command is concerned is/was more ADO.net stylish compared to other component sets. If I remember correctly UniDAC was introduced pretty much around the time AnyDAC (predecessor of FireDAC) showed up in public. The difference is in the nifty detail. From the bird's eye perspective both are more or less pretty much the same. Under the hood both work completely different.

 

Another question is about having being in the position to utilize access to different database systems by one application since the database is already provided by the customer or 'just' being in the position to use a different database for 'the next application'. In the first case have a focus on the unification layers, for example the unified SQL offered by the 'components' and the statements issued to the database. FireDAC in some cases emulates functionality missing in/not offered by the database system. No idea in how far UniDAC goes beyond what's offered.

 

The authors of FireDAC e.g. in case of Oracle had a focus on doing things the way they are done on the Oracle database. Which for example allowed to have 3000 users accessing a database about 8 to 10 years ago.

 

Working with UniDAC is easier and those components perform very well too. Their advantage is being in the position to access many databases without the need to have a client library installed. As long that is accepted by the customer this direct mode works (very well already) today.

 

There is no thing such as a dedicated support forum. In general what is written in places like this is brought to the attention of the authors or file a request in the official Embarcadero Quality portal.

 

In general:

 

If you are a hobbyist for example feel free to use ZEOS. These component set is easy to use and pretty straight also in case of for example someone who doesn't care a lot about specifics of the underlying database and ZEOS components are pretty straight and well layered too.

 

If you have the choice rely on one database ('forever) and use specific components. I like DOA for Oracle access simply because that's really Oracle just in Delphi and not TDataSet style put on top of the Oracle database. It's ORACLE like when it comes to treating things the ORACLE way in case of CODE Blocks vs. procedures vs. queries in a way things are presented at the database level - kinda 'SQLPlus script' just coded in Delphi. Today few people care about such things.

  • Thanks 1

Share this post


Link to post

First of all, thanks to all the experts.


I have a few cases in which FireDAC has a solution (for example, Firebird Backup) that is not supported by UniDAC.

In one of my projects, UniDAC is working, but FireDAC does backup, restore, upgrade, and small maintenance jobs on the Firebird Database.

 

At the end of all, I plan to migrate all because I have full FireDAC with Delphi instead of paying for UniDAC as a separate product.

 

When I read the MichaelIT post, I think that UniDAC is a better solution and has a better approach for the database part of the app in Delphi.

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

×