[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: 
http://www.sqlite.org/mostdeployed.html

Luiz



More information about the fpc-pascal mailing list