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.pas is 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 Drive Catalog Demo ApplicationDISQLite3 understands most of the SQL-92 language standard:
DISQLite3 Mathematical Expression Evaluator Demo Applicationdrop TABLE
ON CONFLICT clause
The complete SQL syntax is described in full length in the DISQLite3 HTML Help, part of the installation package.
Simple Programming Interface
DISQLite3 Database Encryption Demo ApplicationDISQLite3 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.
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.
DISQLite3 v5.47.0 – 22 Nov 2023
Support Delphi 12 Athens Win32 and Win64.
Update to SQLite Version 3.44.0.
Aggregate functions can now include an ORDER BY clause after their last parameter. The arguments to the function are processed in the order specified. This can be important for functions like string_agg and json_group_array.
Add support for the concat and concat_ws scalar SQL functions, compatible with PostgreSQL, SQLServer, and MySQL.
Add support for the string_agg aggregate SQL function, compatible with PostgreSQL and SQLServer.
New conversion letters on the strftime() SQL function: %e %F %I %k %l %p %P %R %T %u
Add new APIs: sqlite3_get_clientdata and sqlite3_set_clientdata.
Many errors associated with CREATE TABLE are now raised when the CREATE TABLE statement itself is run, rather than being deferred until the first time the table is actually used.
The PRAGMA integrity_check command now verifies the consistency of the content in various built-in virtual tables using the new xIntegrity method. This works for the FTS3, FTS4, FTS5, RTREE, and GEOPOLY extensions.
The SQLITE_DBCONFIG_DEFENSIVE setting now prevents PRAGMA writable_schema from being turned on. Previously writable_schema could be turned on, but would not actually allow the schema to be writable. Now it simply cannot be turned on.
Tag the built-in FTS3, FTS4, FTS5, RTREE, and GEOPOLY virtual tables as SQLITE_VTAB_INNOCUOUS so that they can be used inside of triggers in high-security deployments.
The PRAGMA case_sensitive_like statement is deprecated, as its use when the schema contains LIKE operators can lead to reports of database corruption by PRAGMA integrity_check.
Query planner optimizations:
In partial index scans, if the WHERE clause implies a constant value for a table column, replace occurrences of that table column with the constant. This increases the likelihood of the partial index being a covering index.
Disable the view-scan optimization as it was causing multiple performance regressions. In its place, reduce the estimated row count for DISTINCT subqueries by a factor of 8.