DISQLite3 为 Delphi(Embarcadero / CodeGear / Borland)实现了一个独立的、可嵌入的、零配置的 SQL 数据库引擎。
特性
- 事务处理:即使在系统崩溃和断电后,事务也是原子性、一致性、隔离性和持久性(ACID)的。
- 零配置:无需设置或管理。
- SQL 标准:实现了大部分 SQL92 标准。
- 数据库存储:一个完整的数据库存储在一个(可能加密的)磁盘文件中。
- 数据规模支持:支持数TB大小的数据库以及数GB大小的字符串和二进制大对象(BLOB)。
- 独立性强:无外部依赖,不需要动态链接库(DLL)。
- 占用空间小且智能链接:仅编译所需代码,最少仅增加300KB代码空间。
- 兼容性:不需要Db.pas,能与所有版本的Delphi(包括Delphi Standard和Delphi Personal)编译,数据库文件可通过Linux和MacOS下的默认SQLite库访问。
DISQLite3与SQLite3的区别
- DISQLite3基于流行的SQLite3数据库引擎的源代码。它像SQLite3一样打开、读取和修改SQLite3数据库文件,并且数据库文件完全兼容(包括非Windows平台)。
- 尽管有相似之处,但它们是两个独立产品。DISQLite3是SQLite3的Delphi移植版本,不是开源的,以免费软件形式发布供个人和非商业用途。商业使用需要事先注册产品。DISQLite3的专业版(商业版和源代码版)能打开个人版库创建的数据库文件,可在任何时候切换到DISQLite Pro并继续使用现有数据库,且专业版增加了个人版没有的高级功能。
DISQLite3相对于SQLite3的优势
- 加密支持:DISQLite3添加了AES加密,使文件无法被识别为DISQLite3数据库。
- 无需DLL:直接编译进应用程序可执行文件,不用担心不兼容、过时或缺失的动态链接库。
- 单文件单元:整个数据库引擎包含在一个Delphi Pascal源代码单元中,添加DISQLite3Api.pas到uses列表后即可使用。
- Delphi优化链接:优化链接完全匹配Delphi默认的函数调用约定,相比SQLite3某些操作性能提升可达50%。
- 占用空间极小:功能强大、速度快且体积小。完整引擎仅给应用增加约300KB代码空间(个人版更少),能让数据库应用小到350KB,比SQLite3动态链接文件sqlite3.dll还小。
- Delphi特定功能
- TDISQLite3Database和TDISQLite3Statement包装器:是原生API的强大包装器,简化数据库开发并增加额外安全检查。
- TDataSet接口:TDISqlite3UniDirQuery继承自TDataSet,使常用控件和报表生成器能与DISQLite3协同工作。
- 从其他TDataSet数据库导入:TDISQLite3DatasetImporter有助于将现有数据库迁移到DISQLite3。
- Delphi类型的参数绑定:添加函数可使用单个函数调用将流行的Delphi类型(字符串、Unicode字符串和变体)绑定到SQL语句。
- Delphi类型的列结果:添加函数可从执行的SQL语句获取结果到Delphi的字符串和UnicodeString变量。
- 异常支持:包含检查SQLite3操作返回值错误的函数,合适时自动抛出异常,异常包含SQLite3错误代码和英文错误描述(如果有)。
安装
解压文件
您可以将DISQLite3文件解压到您选择的任何文件夹中。现有文件将被无提示覆盖。
注意:如果您正在使用来自http://www.yunqa.de的多个Delphi产品,请确保将它们全部解压到同一个根文件夹中。否则,Delphi可能会将相同的文件误认为是不同的文件,并很可能报告类型不兼容。
调整库搜索路径
解压包文件后,DISQLite3几乎可以直接使用了。它只需要在Delphi的库搜索路径中添加两个条目:
对于预编译的DISQLite3Api.pas,
对于其他源代码单元。
您可以为不同的项目单独设置搜索路径,但只调整一次Delphi的全局环境选项会更方便。这保证了DISQLite3对所有新旧项目都是可用的。
要将DISQLite3添加到Delphi的全局搜索路径,请启动Delphi并选择:
菜单“工具” -> 菜单“环境选项” -> 标签“库”
并将适当的路径添加到“库路径”编辑框中:
\DISQLite3_Install\Source\ – 适用于所有Delphi版本
\DISQLite3_Install\D4\ – 适用于Delphi 4
\DISQLite3_Install\D5\ – 适用于Delphi 5
\DISQLite3_Install\D6\ – 适用于Delphi 6
\DISQLite3_Install\D7\ – 适用于Delphi 7
\DISQLite3_Install\D2005\ – 适用于Delphi 2005
\DISQLite3_Install\D2006\ – 适用于Delphi 2006
\DISQLite3_Install\D2007\ – 适用于Delphi 2007
\DISQLite3_Install\D2009\ – 适用于Delphi 2009
\DISQLite3_Install\D2010\ – 适用于Delphi 2010
\DISQLite3_Install\DXE\ – 适用于Delphi XE
\DISQLite3_Install\DXE2$(Platform)\ – 适用于Delphi XE2
\DISQLite3_Install\DXE3$(Platform)\ – 适用于Delphi XE3
\DISQLite3_Install\DXE4$(Platform)\ – 适用于Delphi XE4
\DISQLite3_Install\DXE5$(Platform)\ – 适用于Delphi XE5
\DISQLite3_Install\DXE6$(Platform)\ – 适用于Delphi XE6
\DISQLite3_Install\DXE7$(Platform)\ – 适用于Delphi XE7
\DISQLite3_Install\DXE8$(Platform)\ – 适用于Delphi XE8
\DISQLite3_Install\D10$(Platform)\ – 适用于Delphi 10 Seattle
\DISQLite3_Install\D10_1$(Platform)\ – 适用于Delphi 10.1 Berlin
\DISQLite3_Install\D10_2$(Platform)\ – 适用于Delphi 10.2 Tokyo
\DISQLite3_Install\D10_3$(Platform)\ – 适用于Delphi 10.3 Rio
\DISQLite3_Install\D10_4$(Platform)\ – 适用于Delphi 10.4 Sydney
\DISQLite3_Install\D11$(Platform)\ – 适用于Delphi 11 Alexandria
\DISQLite3_Install\D12$(Platform)\ – 适用于Delphi 12 Alexandria
更新库搜索路径后,Delphi就可以编译使用DISQLite3的应用程序了,例如演示项目。
安装IDE组件
DISQLite3附带了IDE设计时组件。在编写应用程序时,特别是使用数据感知组件时,这些组件非常方便。
注意:设计时组件不一定需要安装才能编译现有项目。对于所有第三方组件(包括DISQLite3)都是如此。然而,如果没有安装这些组件,当您打开带有未注册设计时组件的表单时要小心。如果Delphi报告“读取表单错误”,请不要按“忽略”。相反,按“取消”:这将阻止Delphi打开表单设计器。因此,Delphi将不允许您查看或修改表单,但您可以自由访问所有相关的*.pas文件进行阅读、修改,当然还有编译。
要安装DISQLite3设计时组件,请打开相应的包并在包编辑器中点击“安装”:
\DISQLite3_Install\Source\DISQLite3_D4.dpk – 适用于Delphi 4
\DISQLite3_Install\Source\DISQLite3_D5.dpk – 适用于Delphi 5
\DISQLite3_Install\Source\DISQLite3_D6.dpk – 适用于Delphi 6
\DISQLite3_Install\Source\DISQLite3_D7.dpk – 适用于Delphi 7
\DISQLite3_Install\Source\DISQLite3_D2005.dpk – 适用于Delphi 2005
\DISQLite3_Install\Source\DISQLite3_D2006.dpk – 适用于Delphi 2006
\DISQLite3_Install\Source\DISQLite3_D2007.dpk – 适用于Delphi 2007
\DISQLite3_Install\Source\DISQLite3_D2009.dpk – 适用于Delphi 2009
\DISQLite3_Install\Source\DISQLite3_D2010.dpk – 适用于Delphi 2010
\DISQLite3_Install\Source\DISQLite3_DXE.dpk – 适用于Delphi XE
\DISQLite3_Install\Source\DISQLite3_DXE2.dpk – 适用于Delphi XE2
\DISQLite3_Install\Source\DISQLite3_DXE3.dpk – 适用于Delphi XE3
\DISQLite3_Install\Source\DISQLite3_DXE4.dpk – 适用于Delphi XE4
\DISQLite3_Install\Source\DISQLite3_DXE5.dpk – 适用于Delphi XE5
\DISQLite3_Install\Source\DISQLite3_DXE6.dpk – 适用于Delphi XE6
\DISQLite3_Install\Source\DISQLite3_DXE7.dpk – 适用于Delphi XE7
\DISQLite3_Install\Source\DISQLite3_DXE8.dpk – 适用于Delphi XE8
\DISQLite3_Install\Source\DISQLite3_D10.dpk – 适用于Delphi 10 Seattle
\DISQLite3_Install\Source\DISQLite3_D10_1.dpk – 适用于Delphi 10.1 Berlin
\DISQLite3_Install\Source\DISQLite3_D10_2.dpk – 适用于Delphi 10.2 Tokyo
\DISQLite3_Install\Source\DISQLite3_D10_3.dpk – 适用于Delphi 10.3 Rio
\DISQLite3_Install\Source\DISQLite3_D10_4.dpk – 适用于Delphi 10.4 Sydney
\DISQLite3_Install\Source\DISQLite3_D11.dpk – 适用于Delphi 11 Alexandria
\DISQLite3_Install\Source\DISQLite3_D12.dpk – 适用于Delphi 12 Athens
Delphi编译并安装包后,“Yunqa”组件面板上将出现DISQLite3图标。
如果您要将DISQLite3更新到新版本并且已经安装了组件,则需要重新编译包。在这种情况下,只需按“编译”。接下来不需要按“安装”,但这样做也没有坏处。