Fast and reliable COM-Tools for developers

dhSQLite

This is our latest tool and was developed as a fast alternative

to ADO, encapsulating the super-fast SQLite-engine from:

www.sqlite.org



With only two Dlls you get a complete Replacement to the whole ADO/JET-environment - no dependency-hazzle anymore (working even on Linux/Wine).

Current version of dhSQLite is 1.2 - sqlite_engine.dll is 3.4.0.

Since Version 1.2 dhSQLite has builtin support for a nearly complete set of VB-Functions, new Interfaces for easy implementable userdefined Functions and Collations, and it includes the SQLite-FTS2-Module, wich means FullText-TableScans.



The dhSQLite-Wrapper is not absolutely compatible to ADO - but using it feels like working with ADO (or the somewhat older DAO) - just look at the Source inside the Demo below (wich contains comparison-tests with ADO/JET) - there are very few differences regarding the Code, but huge differences in terms of performance.


Download:

dhSQLite-Binaries and VB6-Demo-Source


We found SQLite a wonderful engine with a very clean API - it was pure fun, to write this wrapper around it and we've done our best, to not absorb too much of its great "native speed". In short, the SQLite-engine is faster than JET - and our COM-wrapper is faster than ADO - but test this out yourself.


We've developed our wrapper with dhRPCServer in mind, so we finetuned especially the Heap-management, the Serialization/Deserialization-performance and the UpdateBatch- capabilities of the dhSQLite-Recordsets - both tools combined are faster than every other

(R)DBMS we've tested so far (faster than e.g. Firebird or a MS-SQLServer 2K in a Multi-

User-Stresstest-scenario running on 8 concurrent Clients). Our combination of an real

Appserver, the fast serializing Wrapper and the great performing SQLite-engine can

easily drive a 100MBit-LAN into its limits - 100% LAN-Load, whilst serving disconnected

Recordsets (uncompressed) with ca. 400 'Customers'-Resultsets/sec consuming only 28% processor-load on a cheap 2GHz-Athlon Dual-CPU).


So thanks again to D. Richard Hipp and the SQLite-community.


Features:

- ADO-like behaviour (reusable skills)
- Nearly complete set of builtin VB-Functions (IIF, Instr, DateDiff, DatePart, ... etc.)
- Add your own userdefined Functions and Collations with ease
- Fulltext-Search-capabilities (sqlite_engine.dll now includes FTS2)
- Full unicode-support (regarding Upper, Lower, Like-Compares even on UTF8-DBs)
- Connection-, Recordset-, Field- and Command-Objects
- DB-Object-Hierarchy (the complete DB-Schema as tree)
- DB-Encryption-Support (Key, Rekey - thanks to Robert Simpson)
- In-Memory- and attachable DBs
- Fast Recordset Serialization (with a "Serialize-Changes-Only"-option)
- Deserialization- and UpdateBatch-Support
- Stronger Type-Checking whilst working with Recordsets
- VB-Date- and VB-Boolean-Type AutoConversion
- ADO-Control-Binding-support (feature is only usable, if ADO is installed)
- XCopy-deployable using DirectCOM.dll

Performance:

Normally ca. 2-3 times faster than ADO/Jet in "Read-Direction" - Serializing is
ca. 8 times as fast as with ADO/PropertyBags (on larger Recordsets).
Inserts using Command-Objects are ca. 8-10 times as fast as with ADO/JET.
Combined with the dhRPCServer as the AppServer-Layer, you can expect ca.
120 Responses/sec, serving 'Select * from Orders' or ca. 500 Responses/sec
serving 'Select * from Customers' - stresstested from multiple Clients against
a "Standard-NWind.db' on a simple Dual-Athlon-CPU (2GHz - SATA 7200/min,
512 MB Ram, 100MBit-LAN, Protocol-Compression and -Encryption enabled).