DISQLite3 Pro 5.24.0 D4-XE10.2 » Developer Team :: Best choice for developers!

DISQLite3 Pro 5.24.0 D4-XE10.2

DISQLite3 Pro 5.24.0 D4-XE10.2
DISQLite3 Pro 5.24.0 D4-XE10.2


DISQLite3 implements a self-contained, embeddable, zero-configuration SQL database engine for Delphi (Embarcadero / CodeGear / Borland).

Overview
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.

SQL-92 Support
DISQLite3 Drive Catalog Demo ApplicationDISQLite3 understands most of the SQL-92 language standard:

ALTER TABLE
ANALYZE
ATTACH DATABASE
BEGIN TRANSACTION
Comments
COMMIT TRANSACTION
CREATE INDEX
CREATE TABLE
CREATE TRIGGER
CREATE VIEW
DELETE
DETACH DATABASE
DROP INDEX
DISQLite3 Mathematical Expression Evaluator Demo Applicationdrop TABLE
DROP TRIGGER
DROP VIEW
END TRANSACTION
EXPLAIN
Expressions
INSERT
ON CONFLICT clause
PRAGMA
REINDEX
REPLACE
ROLLBACK TRANSACTION
SELECT
UPDATE
VACUUM
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.
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.

DISQLite3 5.24.0 – 18 Apr 2018
Performance enhancements in the parser.
Add the sqlite3_serialize and sqlite3_deserialize interfaces.
Recognize TRUE and FALSE as constants. (For compatibility, if there exist columns named “true” or “false”, then the identifiers refer to the columns rather than Boolean constants.)
Support operators IS TRUE, IS FALSE, IS NOT TRUE, and IS NOT FALSE.
Added the SQLITE_DBSTATUS_CACHE_SPILL option to sqlite3_db_status for reporting the number of cache spills that have occurred.
The “alternate-form-2” flag (“!”) on the built-in printf implementation now causes string substitutions to measure the width and precision in characters instead of bytes.
If the xColumn method in a virtual table implementation returns an error message using sqlite3_result_error then give that error message preference over internally-generated messages.
Add support for INSERT OR REPLACE, INSERT OR IGNORE, and UPDATE OR REPLACE in the Zipfile virtual table.
Enhance the sqlite3changeset_apply interface so that it is hardened against attacks from deliberately corrupted changeset objects.
Added the sqlite3_normalize extension function.
Query optimizer enhancements:
Improve the omit-left-join optimization so that it works in cases where the right-hand table is UNIQUE but not necessarily NOT NULL.
Improve the push-down optimization so that it works for many LEFT JOINs.
Avoid unnecessary writes to the sqlite_sequence table when an AUTOINCREMENT table is updated with an rowid that is less than the maximum.
Add the LEFT JOIN strength reduction optimization that converts a LEFT JOIN into an ordinary JOIN if there exist terms in the WHERE clause that would prevent the extra all-NULL row of the LEFT JOIN from appearing in the output set.
Bug fixes:
Fix two problems in the new LEFT JOIN strength reduction optimization.
Fix misbehavior of the FTS5 xBestIndex method.
Fix a harmless reference to an uninitialized virtual machine register.
Fix the eval() SQL function extension so that it works with PRAGMA empty_result_callbacks=ON.
Fix the generate_series virtual table so that it correctly returns no rows if any of its constraints are NULL.
Fix the parser to accept valid row value syntax.
Fix the query planner so that it takes into account dependencies in the arguments to table-valued functions in subexpressions in the WHERE clause.
Fix incorrect result with complex OR-connected WHERE and STAT4.
Fix potential corruption in indexes on expressions due to automatic datatype conversions.
Assertion fault in FTS4.
Incorrect result on the less-than operator in row values.
Always interpret non-zero floating-point values as TRUE, even if the integer part is zero.
Issue an error rather instead of an assertion-fault or null-pointer dereference when the sqlite_master table is corrupted so that the sqlite_sequence table root page is really a btree-index page.
Fix the ANALYZE command so that it computes statistics on tables whose names begin with “sqlite”.
Fix a possible infinite loop on VACUUM for corrupt database files.
Disallow parameters in the WITH clause of triggers and views.
Fix a potential memory leak in row value processing.
Improve the performance of the replace() SQL function for cases where there are many substitutions on megabyte-sized strings.
Provide an appropriate error message when the sqlite_master table contains a CREATE TABLE AS statement. Formerly this caused either an assertion fault or null pointer dereference.
Fix a problem with using the LIKE optimization on an INTEGER PRIMARY KEY.


Only for V.i.P
Warning! You are not allowed to view this text.


Information
Users of Guests are not allowed to comment this publication.