dhSQLite – now with FTS2 and VB UDFs

Datenhaus has just released a new version of dhSQLite based on the latest SQLite 2.4.0 3.4.0 engine which according to www.sqlite.org…

…fixes two separate bugs either of which can lead to database corruption. Upgrading is strongly recommended…

This version of dhSQLite has the FTS2 module compiled in, which adds full-text indexing to SQLite. Version 1.2 also provides a near complete set of built-in VB type functions such as DateDiff, Iif, Instr etc. The addition of new Interfaces allows for the easy creation of VB user defined functions and collations.

In a comment on my previous post, Olaf Schmidt clarified the method of encryption used by dhSQLite. The method is based on Robert Simpson’s ADO.NET-Provider which uses the standard MS CryptoAPI provided RC4 encryption algorithm with a 128bit key (i.e. using the “Microsoft Enhanced Cryptographic Provider v1.0” CSP). If you’re looking for military grade encryption then RC4 is not what you want, but this level of protection is “good enough” for most situations; see this discussion on the System.Data.Sqlite forum for why this is so.



2 responses to “dhSQLite – now with FTS2 and VB UDFs

  1. Hi Goban,

    just a comment about the version of the underlying SQLite-engine… it is based on version 3.4.0, not 2.4.0 …
    maybe you can fix that in your blog-entry.

    Regarding RC4-encryption – yes, it is normally “good enough”, much stronger than e.g. the DB-encryption for MS-Access-Databases, wich can be cracked in seconds using tools flying around in the internet.
    Tough I think about changing it to AES in the next version – will test and see how it performs, since RC4 is a really fast Stream-Cipher.


    Olaf Schmidt

  2. Olaf,

    Yes I should have said 3.4.0, thanks for pointing it out.

    I thing RC4 is fine for most purposes. What would be nice would be the option to use a stronger (and maybe slower) encryption algorithm and perhaps a builtin function to allow encryption ‘within’ the database, i.e. encrypt only certain fields, records or tables.