24

Hi I am developing desktop portable free application and I`m looking for portable database:

  • free
  • without install
  • up to 20K records
  • standalone application
  • supports encryption (optional)
  • SQL92 spec

thanks for advice

can you write some advantages and disadvangtages?

Rob Kam
  • 10,063
  • 14
  • 55
  • 65
drizzt
  • 2,756
  • 6
  • 27
  • 41
  • You should specify language - your db is likely going to tightly couple with your program. – Adam Davis Feb 17 '09 at 16:33
  • AFAIK, Java is the only widespread language with a penalty for using C libraries. (can anybody confirm/deny if .net has the same problem?) – Javier Feb 17 '09 at 16:40

8 Answers8

57

SQLite:

self-contained, serverless, zero-configuration, transactional SQL database engine. SQLite is the most widely deployed SQL database engine in the world. The source code for SQLite is in the public domain.

-Adam

Adam Davis
  • 91,931
  • 60
  • 264
  • 330
14

Firebird embedded

About:

Firebird is an open source relational database offering many ANSI SQL-99 features that runs on Linux, Windows, and a variety of Unix platforms. Firebird offers excellent concurrency, high performance, powerful language support for stored procedures and triggers.

zendar
  • 13,384
  • 14
  • 59
  • 75
6

If you're working in Java, HSQLDB might be a good fit. Otherwise, SQLite.

slim
  • 40,215
  • 13
  • 94
  • 127
3

SQL Server Compact

Rockcoder
  • 8,289
  • 3
  • 32
  • 41
  • 1
    Additionally, the redistribution terms and conditions of SQL Server Compact explicitly forbid the GPL and many other licenses commonly used for free software, which is very problematic, and you may not "work around any technical limitations in the software", which is bullshit when it comes to software programming. – Arafangion Jun 11 '09 at 14:12
  • 2
    @EHaskins: 1) I never run windows on my systems, pirated or not. 2) I have checked the license again and I now realize I have misread the license somewhat, however it still does not allow the use of the GPL. 3) You are not allowed to allow people to run it on a system that does not have a valid windows license. (ie, you would have to categorically deny anything that would allow someone to run it on Linux or Mac OS X, and probably not be able to use the WINE project). 4) I am still disturbed that as an engineer, you are not allowed to "work around any technical limitations in the software". – Arafangion Jun 11 '09 at 23:41
2

Not sure it meets the no install requirement but if you need more than SQLite check Apache Derby.

Nick Van Brunt
  • 15,244
  • 11
  • 66
  • 92
2

Depending on your problem, you may consider Ms Access.

You can connect to Access database through Jet engine which is installed on Windows XP and newer.

Since v2002 it is SQL 92 compliant (as Microsoft claims).

zendar
  • 13,384
  • 14
  • 59
  • 75
  • You can build app using MsAccess as datastore and then ship MDB file with your app. Use OLEDB or ODBC to access it from whichever development environment. No need to install full MsAccess on client. Or is there any special meaning in portable that I don't get? – zendar Feb 17 '09 at 18:53
  • The Jet database engine is present on Windows whether or not you have Access. It's part of MDAC. – Ryan Lundy Feb 18 '09 at 01:05
  • C code for dealing with .dbf files (those of Dbase II/Clipper/Fox fame) is around 200 lines long. but i'd rather use textfiles than .dbf – Javier Feb 18 '09 at 03:51
  • +1 for Access sorry guys who bitch (and love to) but this is a VERY good choice for a number of reasons.. no install etc.. not perfect, not the best answer (JET engine), but a waaaaay under-used alternative – conners Nov 26 '12 at 23:33
2

Tokyo Cabinet would be a good candidate, except it isn't relational (so no SQL).
Given you don't have so many records, maybe a full relational database is overkill for your needs. Or not, it depends on your application, of course.

Martijn Pieters
  • 1,048,767
  • 296
  • 4,058
  • 3,343
PhiLho
  • 40,535
  • 6
  • 96
  • 134
  • TC is certainly interesting, especially since it has so many different formats, each optimised for a different use. no relational, thought. – Javier Feb 18 '09 at 03:53
  • I am sure lot of applications using relational databases can do fine with a plain database, actually... :-) That's why I give this link anyway. – PhiLho Feb 18 '09 at 15:18
0

Edit: Ooops, apparently I meant SQL Compact, not express

Community
  • 1
  • 1
Allen Rice
  • 19,068
  • 14
  • 83
  • 115