DISQLite3 implements a self-contained, embeddable, zero-configuration SQL database engine for Delphi (Embarcadero / CodeGear / Borland).
- ACID transactions, even after system crashes and power failures.
- Zero-configuration – no setup or administration needed.
- Implements most of SQL-92.
- A complete database is stored in a single disk file.
- Supports terabyte-sized databases and gigabyte-sized strings and blobs. Self-contained: no external dependencies, no DLLs.
- Small footprint and smart linking: Only required code is compiled in, adding as little as 300 KB code space only.
- Full Text Search (FTS) with customizable tokenizer, prefix matching, and optional word stemming for 15 languages.
- Database AES encryption with SHA256 key generator.
Db.pasis not required, which allows DISQLite3 to compile with all flavours of Delphi, including Delphi Standard and Delphi Personal.
- Faster than popular database engines for most common operations.
- Simple, easy to use API.
- Database files created with DISQLite3 can also be accessed by Linux and MacOS using the SQLite3 libraries.
DISQLite3 understands most of the SQL-92 language standard:
- ALTER TABLE
- ATTACH DATABASE
- BEGIN TRANSACTION
- COMMIT TRANSACTION
- CREATE INDEX
- CREATE TABLE
- CREATE TRIGGER
- CREATE VIEW
- DETACH DATABASE
- DROP INDEX
- DROP TABLE
- DROP TRIGGER
- DROP VIEW
- END TRANSACTION
- ON CONFLICT clause
- ROLLBACK TRANSACTION
The complete SQL syntax is described in full length in the DISQLite3 HTML Help, part of the installation package.
Simple Programming Interface
DISQLite3 provides a comprehensive list of functions and procedures to manage database records with ease and efficiency. It includes the full SQLite3 functionality, plus a number of Delphi specific extras:
- AnsiString, UnicodeString / WideString, and Variant support.
- Database and Statement wrapper classes.
- TDataSet support.
- TStream support for BLOBs.
- Growing number of Delphi example projects.
Despite of its rich set of features, a DISQLite3 database application can be realized with just three different function calls.
Pro and Personal Editions
DISQLite3 comes in two editions: DISQLite3 Personal and DISQLite3 Pro.
DISQLite3 Personal is free for personal, educational, and non-commercial use. It omits some functionality of DISQLite3 Pro, but does not compromize on essential features like ACID transactions, virtually unlimited database size, full text search, and others.
DISQLite3 Pro is required for commercial use and may be purchased online. It adds functionality usually desired by advanced users. This includes SQL triggers and views, arbitrary encryption passwords, user-defined SQL functions, and more. Since DISQLite3 Pro is fully compatible to the Personal edition, it is possible to upgrade existing projects without any code changes.
The feature chart is available for a side-by-side comparison of the two editions.
DISQLite3 5.16.0 – 3 Nov 2016
- Added the SQLITE_DBCONFIG_NO_CKPT_ON_CLOSE option to sqlite3_db_config.
- Enhanced “WHERE x NOT NULL” partial indexes so that they are usable if the “x” column appears in a LIKE or GLOB operator that has not been overloaded.
- Enhanced sqlite3_interrupt so that it interrupts checkpoint operations that are in process.
- Added SQLITE_FCNTL_WIN32_GET_HANDLE file control opcode.
- Fix the VACUUM command so that it spills excess content to disk rather than holding everything in memory, and possible causing an out-of-memory error for larger database files.
- Fix a case where OR-connected terms in the ON clause of a LEFT JOIN might cause incorrect results.
- Fix a case where the use of row values in the ON clause of a LEFT JOIN might cause incorrect results.