DISQLite3 - A self-contained, embeddable, zero-configuration SQL database engine for Delphi

   2023-02-09 学习力0
核心提示:DISQLite3 implements a self-contained, embeddable, zero-configuration SQL database engine for Delphi (Embarcadero / CodeGear / Borland).Features include:ACID transactions, even after system crashes and power failures.Zero-configuration

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

Features include:

  • 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 -  A self-contained, embeddable, zero-configuration SQL database engine for DelphiDISQLite3 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 -  A self-contained, embeddable, zero-configuration SQL database engine for DelphiDROP 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 -  A self-contained, embeddable, zero-configuration SQL database engine for DelphiDISQLite3 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 ACIDtransactions, 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.

feature chart is available for a side-by-side comparison of the two editions.

This table lists the features of the freeDISQLite3Pro editions.

Feature DISQLite3 Personal DISQLite3 Pro
Windows 64-bit support   Yes
SQL-92 Compatible Syntax Yes Yes
Single File Database Yes Yes
Compact, Variable-Length File Format Yes Yes
Maximum Database Size 2 TB 2TB
Maximum Number of Tables Unlimited Unlimited
Maximum Number of Columns per Table Unlimited Unlimited
Maximum Length of Column Name Unlimited Unlimited
Maximum Number of Indexes Unlimited Unlimited
Maximum Amount of Data per Row Unlimited Unlimited
Compiles into Application EXE, requires no DLLs Yes Yes
Indexed Full Text Search with prefix matching (like "run*") andoptional word stemming Yes Yes
SQL Parameter Binding (?, :ParamName) Yes Yes
Database Locking Yes Yes
Database Transactions and Rollback Yes Yes
Database Schema PRAGMAs Yes Yes
Multiple, Simultaneous SELECT Operations Yes Yes
Database Encryption Single Password Any Password
CHECK constraints   Yes
SQL ANALYZE command   Yes
SQL OR optimization   Yes
SQL BETWEEN optimization   Yes
SQL LIKE optimization   Yes
SQL INSERT allows multiple rows   Yes
Default Column Values Yes Yes
Floating-Point Support Yes Yes
Date and DateTime Functions Yes Yes
User-Defined Collation Sequences   Yes
User-Defined Database Functions and Aggregates   Yes
ALTER TABLE SQL Command   Yes
Authorization Callback Feature   Yes
PRIMARY KEY Columns Yes Yes
Autoincementing PRIMARY KEY columns (may reuse ROWIDs from deleted records) Yes Yes
AUTOINCREMENT keyword (monotonically increasing ROWIDs, guaranteed to be unique over the entire database lifetime)   Yes
VACUUM Clause, Auto-Vacuum Feature   Yes
BLOB Literal SQL Syntax X'ABCD'   Yes
Incremental BLOB API   Yes
CAST ( expr AS type )   Yes
Temporary Tables   Yes
Compound SELECTs (UNION, UNION ALL, INTERSECT, EXCEPT)   Yes
ON CONFLICT SQL Clause   Yes
EXPLAIN SQL Clause   Yes
Database Integrity Check   Yes
FOREIGN KEY constraints   Yes
In-Memory Database   Yes
Hot Database Backup   Yes
Trace Callback Feature for SQL Logging and Debugging   Yes
Commit Transaction Callback Feature   Yes
Progress Callback Feature   Yes
REINDEX SQL Clause   Yes
PRAGMA Database Options   Yes
Sub-Queries, Sub-Selects, IN() Operator   Yes
Automatic Database Triggers   Yes
UTF-8 / Utf8String API Yes Yes
UTF-16 / UnicodeString / WideString API   Yes
Views, Triggers on Views   Yes
ATTACH multiple databases   Yes
SQL tracing and performance profiling   Yes
Shared Cache between multiple open DB connections   Yes
Asynchronous I/O background thread writing   Yes
R-Tree index for geospatial data systems   Yes
Write-Ahead Logging (WAL) for improved performance and concurrency   Yes
Multiple worker threads   Yes
1) Free for personal, educational, and non-commercial use. See license for details.
 
 
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Delphi中的消息处理机制 delphi 方法
    每一个VCL都有一内在的消息处理机制,其基本点就是构件类接收到某些消息并把它们发送给适当的处理方法,如果没有特定的处理方法,则调用缺省的消息处理句柄。    其中mainwndproc是定义在Twincontrol类中的一个静态方法,不能被重载(Override)。它不直接处
    02-09
  • Delphi XE6 通过JavaScript API调用百度地图
    Delphi XE6 通过JavaScript API调用百度地图
    参考昨天的内容,有朋友还是问如何调用百度地图,也是,谁让咱都在国内呢,没办法,你懂的。 首先去申请个Key,然后看一下百度JavaScript的第一个例子:http://developer.baidu.com/map/jsdemo.htm下一步,就是把例子中的代码,移动TWebBrower中。 unit Unit
    02-09
  • Delphi编译/链接过程 delphi编程案例
    Delphi编译/链接过程 delphi编程案例
    下面展示了Delphi是怎样编译源文件,并且把它们链接起来,最终形成可执行文件。当Delphi编译项目(Project)时,将编译项目源文件、窗体单元和其他相关单元,在这个过程中将会发生好几件事情:首先,Object Pascal编译器把项目单元编译为二进制对象文件,然后
    02-09
  • Delphi CompilerVersion Constant / Compiler C
    http://delphi.wikia.com/wiki/CompilerVersion_Constant The CompilerVersion constant identifies the internal version number of the Delphi compiler.It is defined in the System unit and may be referenced either in code just as any other consta
    02-09
  • Delphi revelations #1 – kbmMW Smart client
    Delphi 启示 #1 – kbmMW Smart client on NextGen (Android) – 作用域问题以更高级的方式使用kbmMW smart client,在Android设备上,我遇到了问题。通过继承TInvokeableVariantType,kbmMW smart client可以使用Delphi支持的特殊类型的自定义Variant,从而可
    02-09
  • Delphi 调用DLL外部函数时的指针参数
    某项目需要调用设备厂家提供的DLL的函数,厂家给了一个VB的例子,有个参数是ByRef pBuffer As Single。于是在Delphi中用buffer:array of single代替:function func(buffer:array of single;count:integer):integer;far;stdcall;external 'func.dll';调用后bu
    02-09
  • 《zw版·Halcon-delphi系列原创教程》 Halcon分
    《zw版·Halcon-delphi系列原创教程》 Halcon分类函数012,polygon,多边形为方便阅读,在不影响说明的前提下,笔者对函数进行了简化::: 用符号“**”,替换:“procedure”:: 用大写字母“X”,替换:“IHUntypedObjectX”:: 省略了字符:“const”、“OleVa
    02-09
  • 最简单的delphi启动画面(转)
    首先做一窗体,然后将BorderStyle的属性设为bsnone,放image控件,align设为alclient 然后将主程序的修改为 uses Windows, Forms, Unit1 in 'Unit1.pas' {Form1}, Unit2 in 'Unit2.pas' {Form2}; {$ R *.res} begin Application.Initialize; Form2:=TForm2.Cre
    02-09
  • Delphi备忘三:TCollection的使用,用Stream保
     代码unit ufrmGetFunctionDefine;interfaceuses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,TypInfo,  Dialogs,ufrmStockBaseCalc, StdCtrls, ComCtrls,uQEFuncManager,uWnDataSet,uDataService;type  T
    02-09
  • Delphi Dcp 和BPL的解释
    dcp = delphi compiled package,是 package 编译时跟 bpl 一起产生出来的,记录着 package 中公开的 class、procedure、function、variable、const.... 等等的名称和相对位址。package英文翻译过来就是“包”。如果 某个控件包 A 引用了 控件包 B,当 控件包
    02-09
点击排行