IceCold
IceCold

Reputation: 21221

Delphi embedded DB

I need a SMALL/LIGHTWEIGHT DB control (maybe delivered as a single PAS file) that I can integrate directly into my application. I need to store relatively small amounts of data in a small number of tables and I want to access some columns fast. I know that Delphi 7 has that nice BDE but I don't want to trouble the user with the installation process.

I use Delphi 7.


EDIT:
I think I asked the wrong question. So, here is what I actually need:
How to store dynamic data (unknown number of fields) to a file?

Upvotes: 8

Views: 5017

Answers (10)

IceCold
IceCold

Reputation: 21221

I have tried (arranged by lightweight):

  • NexusDB - commercial, too big for what I need; adds quite some overhead
  • DISQLite - seems powerful; difficult to use
  • kbmMemTable - commercial, UNDOCUMENTED FOR TRIAL USERS (it cannot be trialed unless you purchase the documentation, first which befits the purpose of the TRIAL concept)
  • TDBF - free but not maintained anymore; also it totally lacks of documentation
  • Synopse BigTable - seems to be the solution that I need. It consists in 2 PAS files only.

In some situations a custom system may fit better that a general one. So, for what I need, I will tailor my own system. Because I know the size/type of the data I can make fields that perfectly fit my data. The DB size will be smaller this way and faster (plus it is free). :)

Solution: How to store dynamic data (unknown number of fields) to a file?

Upvotes: 1

Kim Madsewn
Kim Madsewn

Reputation: 1

While the manual is paid for, the actual component is available for free, including a pretty extensive demo application showing lots of the features. In addition there are lots and lots of information on the internet about how to use it. Use www.codenewsfast.com or google.com to search for it.

best regards Kim Madsen [email protected]

Upvotes: -2

avra
avra

Reputation: 3730

  1. JvCSVDataSet and JvCSVBase from JVCL
  2. kbmMemTable
  3. Embedded Firebird server
  4. jbDBF

Upvotes: 0

Arnaud Bouchez
Arnaud Bouchez

Reputation: 43053

Two Open Source solutions (working from Delphi 6 up to XE):

  1. One ORM oriented solution, which can store data using SQLite or a pure Delphi storage. It can be either as stand-alone, either as Client/Server.

  2. One very fast pure Delphi NoSQL table storage engine. Sample benchmark was able to store 1,000,000 records with one integer and one text field in 800 ms (with automatic index creation). You create your own table columns, then access the fields content via Late-Binding.

Upvotes: 4

Leonardo Herrera
Leonardo Herrera

Reputation: 8406

If have some budget to spend, give AnyDAC a try. It provides native and embedded SQLite access, so you don't even have to ship an external DLL.

Upvotes: 3

GrandmasterB
GrandmasterB

Reputation: 3455

You could try SQLite. Its an excellent embedded database. Fast, reliable, and you cant beat the price (open source, public domain). There's a number of Delphi wrappers, or you can use the library directly if you want a light weight solution.

Upvotes: 7

PhilW
PhilW

Reputation: 457

As an alternative, how about the freeware TDbf database? It compiles directly into your application and is reliable for lightweight uses.

Also, if you are old enough to remember the days when DBase was the standard desktop database platform, then you probably know how to use it already. :-)

It's at http://tdbf.sourceforge.net

(If there doesn't seem to be a lot of recent activity then it is because it's been around for 10 years and is very stable).

Just a thought.

Upvotes: 7

Cosmin Prund
Cosmin Prund

Reputation: 25678

If you're committed to not include any more dependencies with your application, take a look at TClientDataSet.

I'd recommend some sort of "embedded" database. Example: In order to use Firebird as an embedded database, at a minimum, you only need to ship one DLL. You can put that DLL in your installer so the user doesn't need to install anything.

Upvotes: 8

Erwin
Erwin

Reputation: 1926

NexusDB offers a free embedded version. Here is an Example

Upvotes: 9

Related Questions