Fast and reliable COM-Tools for developers

dhSQLite

 

The functionality of the former "dhSQLite"-Wrapper is now included in our "combined toolset" - but all the Classes from the former dhSQLite.dll are there - and all the method-calls against these classes are compatible, so you will only have to change the VB6-project-reference from dhSQLite to dhRichClient3 (after properly registering the new toolset) - and your Project should behave and work as before.

 

The Wrapper was developed as a fast alternative to ADO, encapsulating the super-fast SQLite-engine from: www.sqlite.org

 

The Class-functionality was enhanced - and now supports also nested transactions, which were introduced into SQLite from version 3.6.10.

Also new is a Rs.GetADORsFromContent-method, which will hand out a copy of the current SQLite-Recordsets content as a "true, freestanding" disconnected ADO-Recordset.

With the new Cnn.CreateTableFromRsContent-Call you can now create new tables (either within InMemory-DBs or inside filebased DBs) directly from the current Recordset-Content with only one single line of code.

The cSelectCommand-Object was introduced, to round up the already existing cCommand-Object (which has covered only the Write-Direction so far - now the read-direction is also there) - both CommandObject-Types can now persist their Command-Definition in the DB itself.

 

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

Current version of the SQLite-Wrapper is 3.0.21 - sqlite36_engine.dll is 3.6.20.

The wrapper 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-FTS3-Module, wich means FullText-TableScans with high performance - and also the new RTree-extension (usable for Geo-Data, etc.) are now included in the engine-compile.
 

The Wrapper is not entirely calling-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: 

As already said above, the SQLite-Classes are now included in the RichClient-Toolset -

please download the new binaries and the new Demo-Sets here...

 

 

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 SQLite-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 a 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 (sqlite36_engine.dll now includes FTS3)
- 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-20 times as fast as with ADO/JET.
Combined with the dhRPCServer as the AppServer-Layer, you can expect ca.
600 Responses/sec, serving 'Select * from Orders' or ca. 2000 Responses/sec
serving 'Select * from Customers' - stresstested from multiple Clients against
a "Standard-NWind.db' on a simple Dual-Athlon-CPU (2.4GHz - SATA 7200/min,
1024 MB Ram, 1GBit-LAN, Protocol-Compression and -Encryption enabled).