Link to home
Start Free TrialLog in
Avatar of Ehsun
Ehsun

asked on

Database in Delphi

Hi friends, If I want to write a program with a database that works Desktop (not Client/server) and need a simple database, wich database do you sugguest me? (MS Access/ Paradox/ DB2)
ASKER CERTIFIED SOLUTION
Avatar of kretzschmar
kretzschmar
Flag of Germany image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of Voodooman
Voodooman

Hi

If you want simple and cheap try Easy Table from http://www.AidAim.com this is a cool product.

If you want something really excellent then I recommend DBISAM from http://www.elevatesoft.com.

Access is a great database but difficult to deploy (people are going to jump all over me for saying this - but with 10 years of commercial experience with VB and Access - I speak from experience).

Paradox is a clunker and difficult to deploy.

Firebird is a complex product and difficult to deploy.

DBISAM is my choice although it is not cheap it is well worth the money - a simply superb product which is an absolutle joy to use.

Just my own opinions - good luck

Voodooman
Not an easy one but FlashFiler is open-source, free and fully implemented in Delphi. See http://sourceforge.net/projects/tpflashfiler/
However, FlashFiler isn't easy to use. But it's biggest advantage is that you can keep everything contained in one single executable without any dependencies of any database drivers or whatever more. (It also works great for network solutions but that's not one of your problems.)

When deciding which database to use, you have to consider how you're going to access the database. The BDE is an ancient dinosaur, which was great in it's time but now we're waiting for it to turn into oil. So if you won't be using the BDE, Paradox and DBase will be no option anymore.
You could use ADO, which allows you to connect to SQL Server (expensive) or Access. While Voodooman complains about the difficulty of deploying applications that use ADO, I think it's just more a matter of personal experience. All you need to make sure is that MDAC is installed on the clients system with proper ADO support and then all you need is install the database and application and make sure you're using the correct connection string to connect to the database. I've used Access for my own website for all kinds of things and this webserver won't allow me to run installation programs. Yet deploying my Access webapplications to it is just a piece of cake, since it does support ADO.
The third option is just using native database components and if you choose for this, there will be a large amount of options available for you. Interbase and it's free version Firebird would be a good choice in that case, although MySQL is a good option too.

In the past, Paradox was my favorite choice but the BDE is giving me too much pains lately. ADO with Access makes development for my website a lot easier. And for local applications I either use FlashFiler or Interbase. FlashFiler for simple projects and Interbase for projects that require a large amount of data to be stored.

However, in some situations I haven't even bothered by using a database but just stored data in an XML file. A single XML file could have many layers inside and if you're experienced enough, you could use transformations to extract specific data and schema's to just validate the contents. It's not useful for half a million of records but if the amount of records of all tables is less than 5000 or so records then XML is a good alternative. Even funnier, I've used XML combined with transformations so I can open the XML file in a webbrowser and the webbrowser will show me a nice overview in tables, with summaries, clear headers and whatever more.
Firebird embedded, difficult to deploy? The embedded server is very simple
to deploy on a desktop app. Of course, it's like killing flies with a atomic bomb.


When you kill the flies with the A-bomb can I watch?

Some people have such exciting jobs....

Voodooman!
Voodooman,

Firebird embedded is quite easy to deploy to a stand-alone,
desktop user. If the needs are very simple, it's really overkill but
you gain later: if the company central db is firebird, going
from desktop app to C/S will be much simpler... Just a case
of changing connection strings.

[A-bomb]
I prefer kill them with Rodasol(spray)... ;-)
But I'll call if I use the A-Bomb ;-)
Since most people gave him answers that
respond to his necessity.... There is a lot
of correct answers. What is THE answer, well,
I don't know.