DISQLite3 - A self-contained, embeddable, zero-configuration SQL database engine for Delphi
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.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.
SQL-92 Support
DISQLite3 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
DROP 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 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.
A feature chart is available for a side-by-side comparison of the two editions.
This table lists the features of the free1) DISQLite3 Personal vs. the commercial DISQLite3Pro 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 |
DISQLite3 - A self-contained, embeddable, zero-configuration SQL database engine for Delphi的更多相关文章
- How to Use Lucene.NET with Windows Azure SQL Database
http://social.technet.microsoft.com/wiki/contents/articles/2367.how-to-use-lucene-net-with-windows-a ...
- Create an Azure SQL database in the Azure portal
Create a SQL database An Azure SQL database is created with a defined set of compute and storage res ...
- [Windows Azure] How to Create and Configure SQL Database
How to Create and Configure SQL Database In this topic, you'll step through logical server creation ...
- [Windows Azure] Getting Started with Windows Azure SQL Database
In this tutorial you will learn the fundamentals of Windows Azure SQL Database administration using ...
- HTML5教程之html 5 本地数据库(Web Sql Database)
HTML5的Web SQL Databases(html5 本地数据库)的确很诱惑人,当你发现可以用与mysql查询一样的查询语句来操作本地数据库时,你会发现这东西挺有趣的.今天,我们一起来了解HTM ...
- Azure SQL Database (19) Stretch Database 概览
<Windows Azure Platform 系列文章目录> Azure SQL Database (19) Stretch Database 概览 Azure SQL Da ...
- Azure SQL Database (20) 使用SQL Server 2016 Upgrade Advisor
<Windows Azure Platform 系列文章目录> Azure SQL Database (19) Stretch Database 概览 Azure SQL Da ...
- Azure SQL Database (21) 将整张表都迁移到Azure Stretch Database里
<Windows Azure Platform 系列文章目录> Azure SQL Database (19) Stretch Database 概览 Azure SQL Da ...
- Azure SQL Database (22) 迁移部分数据到Azure Stretch Database
<Windows Azure Platform 系列文章目录> Azure SQL Database (19) Stretch Database 概览 Azure SQL Da ...
随机推荐
- ls和cd命令详解
ls命令 命令功能: 列出当前目录下或者指定目录下的所有文件和目录,ls是list的缩写. 命令语法: ls [选项][目录名 ] #注:[ ]中的内容为非必选项 命令选项: | 选项 | 含义 ...
- GBDT+LR simple例子
卧槽,本来猜GBDT获取的组合特征,需要自己去解析GBDT的树,scikit learn里面竟然直接调用apply函数就可以了 # 弱分类器的数目 n_estimator = 10 # 随机生成分类数 ...
- java基础64 JavaScript中的Arrays数组对象和prototype原型属性(网页知识)
1.Arrays数组对象的创建方式 方式一: var 变量名=new Array(); //创建一个长度为0的数组. 方式二: var 变量名=new Array(长度); //创建一个指定长度的数组 ...
- java基础60 JavaScript字符串转换成数字(网页知识)
1.字符串转换成数字 <!doctype html> <html> <head> <meta charset="utf-8"> &l ...
- 洛谷P2341受欢迎的牛
传送门啦 这是一个tarjan强连通分量与出度结合的例题. 先明确一下题意,如果这个点(缩点之后的)没有出度,这个点才能成为明星牛(明星牛的定义是:所有牛都喜欢他才可以). 由于我们进行了缩点,所以我 ...
- 洛谷P2017晕牛
传送门啦 这个题没有想象中复杂. 我们先有向边建立,因为我们无法改变有向边的方向. 建立完之后跑一边拓扑排序,我们按拓扑序小的指向大的就好了. 解释: 我们知道如果一个点在另一个点顺序的后面的话,如果 ...
- POJ 2955 Brackets(括号匹配一)
题目链接:http://poj.org/problem?id=2955 题目大意:给你一串字符串,求最大的括号匹配数. 解题思路: 设dp[i][j]是[i,j]的最大括号匹配对数. 则得到状态转移方 ...
- php和mysql两种不同方式的分割字符串和类型转换
一.sql语句1.分割字符串方法:substring_index(字符串,'分隔符',正数从左数起几位/负数从右数起几位); 例如:subtring_index('aa_bb_cc_dd','_',1 ...
- SQL SERVER 比较两个数据库中表和字段的差异
在开发过程中线上的数据库表字段和本地数据库表字段是存在的,也许我们在本地数据库中所增加的表字段都会有记录到SQL文件中,但当增加的表及字段名称较多时总会出现漏网之鱼,发布真是版本的时候回出现很多很多的 ...
- 全方位掌握nsis脚本
NSIS 确实是一个不错的安装程序制作软件.新版本 2.0a7 真正实现了中文支持和支持 WinXP 的安装对话框. 不过要用它实现漂亮的安装界面和完美的安装功能就必须好好的写脚本. 而 NSIS 的 ...