• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 561
  • Last Modified:

Delphi database framework


I'm evaluating some of delphi framework to data access and fell very hard to choose what of them to
use for a new project.

dbexpress - hmmm..... very tempter.. but I really afraid the way it works, have to manage in-memory
register quantity(no pointer), not automatic post, reconcile error, unidirectional.... I think it introduces
many code challenges....And I can fail in the project :-(....

ADO - good....but...very windows specific.

Interbase - good...but...very borland specific.

BDE/ODBC - overtaken...no way.

Please give me your opinion.

4 Solutions
> Interbase - good...but...very borland specific.

FireBird is an OpenSource branch of Interbase:
oracle-> very oracle specific
db2->very ibm specific

for what are you after?
there is no general issue
Wim ten BrinkSelf-employed developerCommented:
DBExpress is a nice option but it's still not popular enough and I fear that most developers will prefer other alternatives.
The BDE is also a good option but unfortunately you're required to add the 11 MB database engine to your project. Not a real good solution then.
BDE/ODBC used to be a good option but there are better alternatives now.
Interbase, Oracle, DB2, ect. all have special Delphi components giving you access to those specific databases. These are IBExpress for Interbase and ODAC for Oracle. Some of these component-sets are commercial versions while others are free. But the problem is that it fixates you to use only one type of database.
OLE DB/ADO is one of the better alternatives then. It does require that you have an OLE DB driver for the database you're using or, if you don't have an OLE DB driver, that you use an ODBC driver that is connected to the OLE DB ODBC driver. And yes, it is very Windows specific but it has a good performance, especially in multitier applications. However, writing ADO applications can be very challenging too...

Actually, picking the right database framework depends on what you're going to use it for. You have to decide what database you're going to use first. Oracle, Interbase, Paradox, MS SQL, MySQL, Access, DB2, BTrieve or whatever other database you like. You might even consider that the the user can choose which database to use himself.
Then you have to decide upon the architecture of your application. Will it run locally on the same machine as the database? Will it be a client-server application? Or do you create a multi-tier application?
Btw, for client-server and multitier applications using ADO it doesn't matter what operating system the database server is using. I've used ADO with an Oracle database on a HP Unix machine and it's working fine! That's because the ADO components communicate with the locally installed Oracle Client libraries and these libraries communicate with their own protocol with the Oracle server.

For multi-tier applications, my suggestion is not to use Midas unless you need to be Windows independant. Use ADO because there are no licence costs for ADO. Furthermore, ADO is language-independant and can even be used in webservers. It has the same abilities as Midas and I even wonder why we need Midas anyways...
Free Tool: Site Down Detector

Helpful to verify reports of your own downtime, or to double check a downed website you are trying to access.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

There is no general answer to your question. If there had been such an answer there wouldn't have been so many ways for connecting databases and all developers would have used one way only and always.
Any solution has its own advantages (and disadvantages) and depends on various criterias such as performance, cost, maintenance (if it's easy enough to manage), support (from the supplier), hardware and software requirements, data volume, etc.
If you tell us more about your environment and requrements, experts will be able to propose solutions based on their experience.

Regards, Geo
This old question needs to be finalized -- accept an answer, split points, or get a refund.  For information on your options, please click here-> http:/help/closing.jsp#1 
Post your closing recommendations!  No comment means you don't care.
Split points among all experts.
Wow, Its been a long time since this comment have been visited!

No comment has been added lately (19 days), so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area for this question:

RECOMMENDATION: split points between TOndrej http:#6849157 and kretzschmar http:#6849757 and Workshop_Alex http:#6850324 and geobul http:#6852587

-- Please DO NOT accept this comment as an answer ! --


EE Cleanup Volunteer

Remember you (all) can object this recommendation if you disagree, just leave a post here explaining why are you objecting and what should be done instead.
Within 7 days probably this thread will be closed, so, hurry up! : )
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now