Fog Creek Software
Discussion Board




Small local database?

I'm wondering what some of you use for local data storage for small apps. (When something a bit more elaborate than ini and text files is called for...)

With VB I used Access, but I find the deployment to be rather bandwith-hungry (with DCOM, MDAC, JET4SP3, etc. required to make sure your app will run on all Win32 platforms. I ended up with a 9MB Setup.exe for a 50k VB app...)

I've looked a a few things and currently am evaluating Advantage DB (www.advantagedatabase.com); which is small, easily deployable (800K compressed) and free when used locally on a client (which is what I need for small freeware and shareware utilities).

Are there any others small, fast and (preferably) free DBs for Delphi; ease of use and deployment being the main criterias and low cost the least important?

Guy Gervais
Saturday, November 23, 2002

We're using DBISAM here with great success. It's small and it gets built into the exe file. They're providing frequent updates. http://www.elevatesoft.com

The Delphi Fan
Sunday, November 24, 2002

How large is DBISAM's footprint? When you build it into your .exe, how much size does it add?

Guy Gervais
Sunday, November 24, 2002

DBISAM adds 0.5 MB to your exe file, which is incredible for what you get.

AC
Monday, November 25, 2002

I forgot to mention that this is uncompressed. So with an installer you are probably looking at 200/300 KB.

AC
Monday, November 25, 2002

TClientDataSet, which is part of Delphi since 3 (possibly only pro or enterprise), can save and load from files. You cannot use SQL on them, but they have extensive filtering capabilities.

Big B
Monday, November 25, 2002

I'd encourage you to stay with Advantage.  The company has been around a long time, their product is extremely stable, they have phenomenal support, and if you ever need to take any of your apps to client/server it's extremely easy.

Karl Perry
Monday, November 25, 2002

I've had further time to evaluate Advantage and must say that I'm pretty pleased with it. It'd be nice to be able to compile into the exe; but distributing 2 small dlls is no hassle.

From the few informal tests I've ran, Advantage is also very fast. (Compared to using Access thru ADO which is what I was previously using.)

DBISAM might be interesting, but for now I see no major advantage (no pun intended) to using it instead of Advantage, especially since Advantage Local Server is free to use and distribute.

Thanks for the tip about TClientDataSets, I wasn't aware of that possibility. I gather that the tables must be built from code before loading the files? Are master-detail relationships supported?

Guy Gervais
Monday, November 25, 2002

Regarding TClientDataSet, the table structure is saved in the file, so it is not necessary to set that up. In addition, the table structure for new tables can be built using the design time editor as well as in code. Master/detail relationships are supported both through either the MasterSource property or nested table fields. If you use nested tables, all tables in the relationship are contained in one dataset and one file.

In recent versions of Delphi, you can use a TXMLTransformProvider and the XML mapper utility to create a transformation that allows you to save and load TClientDataSet packets in your own XML format.

Big B
Tuesday, November 26, 2002

*  Recent Topics

*  Fog Creek Home