[fpc-pascal] sql server embedded: sqlite the only solution?

Luiz Americo Pereira Camara luizmed at oi.com.br
Tue Dec 22 14:19:35 CET 2009

Michael Van Canneyt escreveu:
> On Tue, 22 Dec 2009, JoshyFun wrote:
>> SQLite is faster than Firebird, but take care that SQLite does not
>> enforce foreign keys, so data integrity must be handled by the
>> programmer "manually".
> About the "sqlite is faster":
> This depends highly on the kind of queries you are using.
> In my tests, sqlite was significantly slower than firebird. I compared
> speeds of 4 different embedded engines, and sqlite was definitely not 
> the fastest one.

Can you provide such tests?
Sqlite, due to it's nature (small), is know to have a query optimizer 
less powerful than other (bigger) RDMS. Most of the time those sql can 
be manually optimized. Anyway recent versions have improved performance.

> Secondly, I would never recommend sqlite for use with Pascal 
> applications, since sqlite does not even enforce the data to be of the 
> correct type, which
> creates problems if a field of type INT contains e.g. textual data, 
> causing
> a pascal application to crash.

It's true if trying to load a data file created outside of the pascal 
application. Databases created and handled by TDataset descendants 
(Zeos, TSqlite3Dataset, Sqldb) has no such problems.

> (last time I checked, they called this "a feature")

One point not cited in thread was the availability of Firebird embedded 
that AFAIK is only for Windows.

Not to say that sqlite is probably the most used embedded database: 


More information about the fpc-pascal mailing list