disqlite3是一款专业的sql数据库引擎管理软件。需要sql数据库引擎管理软件的你快来试试disqlite3吧。DISQLite3是用于Delphi(Embarcadero / CodeGear / Borland)的独立的,可嵌入的,零配置的SQL数据库引擎;即使在系统崩溃和电源故障后,该程序也是原子的,一致,隔离且持久,零配置,无需设置或管理;实现存储在单个(可能是加密的)磁盘文件中的大多数SQL92完整数据库;支持TB级数据库和千兆字节大小的字符串和Blob,支持自包含功能,无外部依赖项,无DLL;占地面积小,支持智能链接,仅编译所需的代码,仅添加300KB的代码空间,不需要Db.pas等功能,支持DISQLite3和各种Delphi编译,包括Delphi Standard和Delphi Personal,TDataSet后代用于处理现有的数据感知控件和报告生成器。大多数操作都比其他流行的数据库引擎更快。易于使用的API层:本机,对象和TDataSet。使用默认的SQLite库。也可以使用Linux和MacOS。使用DISQLite3创建的数据库文件。功能强大实用,需要它的用户快速下载体验。
使用说明:
的DISQLite3优于SQLite3的优势
加密支持
DISQLite3添加了AES加密,没有任何东西可以将该文件标识为DISQLite3数据库。
不需要DLL
DISQLite3直接编译为应用程序的可执行文件。不再担心不兼容,过时或缺少的动态链接库。
单文件单元
整个DISQLite3数据库引擎都包含在Delphi Pascal源代码单元中:在将DISQLite3Api.pas添加到您的使用列表之后,即可运行DISQLite3。
Delphi优化链接
DISQLite3的优化链接完全符合Delphi的默认调用函数约定。与SQLite3相比,某些操作的性能高达50%。
占地面积很小
DISQLite3功能强大,快速而又小巧。完整的DISQLite3数据库引擎将仅为您的应用程序添加大约300 KB的代码空间,而对于个人版本则更少。这样就可以创建最小为350 KB的完整数据库应用程序,该应用程序甚至比SQLite3动态链接文件sqlite3.dll小。
添加到DISQLite3的特定于Delphi的功能
TDISQLite3Database和TDISQLite3Statement包装器
TDISQLite3Database和TDISQLite3Statement是本机API的强大包装器。它们简化了数据库开发并增加了额外的安全性
TDataSet接口
TDISqlite3UniDirQuery来自TDataSet后代,该后代允许将公共控件和报表生成器与DISQLite3一起使用。
导入从其他TDataSet数据库导入
TDISQLite3DatasetImporter帮助将现有数据库转移到DISQLite3。
Delphi类型参数绑定
DISQLite3添加了一个函数,该函数使用单个函数调用Strings,UnicodeStrings和Variants将流行的Delphi类型绑定到SQL语句。
Delphi类型列结果
DISQLite3添加了一些函数,用于将已执行的SQL语句的结果检索到Delphi的String和UnicodeString变量中。
异常支持
DISQLite3包含用于检查SQLite3操作的错误返回值的函数,并在适当时自动引发异常。该异常描述了SQLite3错误代码和英语错误描述(如果有)。接口层
DISQLite3提供了三个接口层来访问数据库引擎:
本机API
本机API是访问DISQLite3数据库引擎的最直接方法。它完全独立于Pascal源代码单元DISQLite3Api.pas。要使用本机API,您需要做的就是将此单元添加到uses子句中:
采用
DISQLite3Api;
本机API创建最小和最快的代码,因此最适合于时间紧迫的应用程序或超紧凑的动态链接库,例如CGI模块。但是,比其他层更难使用。
对象层
对象层包含在DISQLite3Database.pas单元中,并为本机API提供了两个不错的对象包装器:
TDISQLite3Database.png TDISQLite3Database
TDISQLite3Database封装了一个DISQLite3数据库句柄:它提供了用于创建,打开和关闭数据库的方法。它可以用于直接执行SQL或创建准备好的语句。您可以重写TDISQLite3Database虚拟方法来创建负责创建表和索引的自定义数据库对象。新成员可以实现数据缓冲和自定义数据访问。
TDISQLite3声明
TDISQLite3Statement将准备好的SQL语句带到对象级别。有多种方法可以绑定数据,逐步浏览结果并读出数据库值。 TDISQLite3Statement可用于读取和写入数据库,最适合需要高效处理大量记录的情况。
对象层简化了用很少的代码编写高效的数据库应用程序的过程。使用异常来实现错误处理,并且可以使用虚拟方法根据个人需要自定义提供的类。提供完整的源代码作为参考。
与原生API相比,
对象层增加了可执行文件的占用空间,并减少了执行时间。大多数应用程序不会平均注意到大型数据库的这种开销,因为磁盘访问将消耗大部分系统资源。即使对于非常小的数据库大小,对象层的性能损失也几乎不会超过1%或2%。
TDataSet层
TDataSet层将DISQLite3连接到许多可用于Delphi的数据感知组件。 DISQLite3DataSet.pas中包含DISQLite3中的TDataSet支持,它与dbExpress组件非常相似。同样,完整的源代码可用。
TDISQLite3UniDirQuery.png TDISQLite3UniDirQuery
TDISQLite3UniDirQuery允许您使用单向数据集访问DISQLite3查询。它旨在以最小的开销快速而轻便地访问数据库信息。它可以将SQL命令发送到数据库服务器,并且如果该命令返回一组记录,则获取一个游标以访问这些记录。但是,顾名思义,TDISQLite3UniDirQuery仅检索单向游标。它不会在内存中缓冲数据,这使其比其他类型的数据集更快且资源更少。但是,由于没有缓冲的记录,因此它不像其他数据集那样灵活。 TDataSet引入的许多功能未实现或导致它们引发异常。尽管有这些限制,TDISQLite3UniDirQuery是一种访问数据的强大方法,并且非常易于使用和部署。
TDISQLite3DatasetImporter.png TDISQLite3DatasetImporter
TDISQLite3DatasetImporter提供了一种将数据从任何TDataSet后代导入DISQLite3数据库的便捷方法。
尽管TDataSet层为DISQLite3数据库添加了许多新的可能性和现有的库
,但这也将所有三个DISQLite3访问层的最大开销添加到应用程序中。
简介:开发人员应牢记上面概述的每个数据访问层的优缺点,并选择最适合其应用程序的层。
本机API概述
除了一些常量外,DISQLite3的本机API还包含大量独立功能。 (完整的参考作为单独的文档提供。)幸运的是,该接口并不像它的大小所暗示的那样复杂。简单程序仍然只能使用3个函数:sqlite3_open,sqlite3_exec和sqlite3_close。使用sqlite3_prepare_v2将SQLite语句编译为字节码,并使用sqlite3_step执行字节码,以更好地控制数据库引擎的执行。使用一系列以sqlite3_column开头的例程来提取有关查询结果集的信息。许多接口功能都是成对出现的,包括UTF-8和UTF-16版本。还有一组例程,用于实现用户定义的SQL函数和用户定义的文本整理序列。
sqlite3_open例程将打开现有数据库文件或新数据库文件,并返回整数错误代码。 sqlite3_open和sqlite3_open16之间的区别在于sqlite3_open16使用UTF-16 WideString作为数据库文件的名称。如果需要创建新的数据库文件,则sqlite3_open16会将内部文本表示形式设置为UTF-16,而sqlite3_open会将文本表示形式设置为UTF-8。
延迟打开和/或创建数据库文件,直到实际需要该文件为止。这允许使用PRAGMA语句设置选项和参数,例如本机文本表示和默认页面大小。
sqlite3_errcode例程返回上一个主要API调用的结果代码。 sqlite3_errmsg返回英文文本错误消息中的最新错误。错误消息以UTF-8表示,并且持续时间很短,并且在下次调用任何DISQLite3 API函数时可能会消失。 sqlite3_errmsg16的工作方式与sqlite3_errmsg类似,不同之处在于它返回以主机的本机字节顺序表示为UTF-16的错误消息。
DISQLite3的结果代码如下:
SQLITE_OK 0成功的结果
SQLITE_ERROR 1 SQL错误或数据库丢失
SQLITE_INTERNAL 2 SQLite中的内部逻辑错误
SQLITE_PERM 3访问被拒绝
SQLITE_ABORT 4回调例程请求中止
SQLITE_BUSY 5数据库文件被锁定
SQLITE_LOCKED 6数据库中的表已锁定
SQLITE_NOMEM 7 malloc失败
SQLITE_READONLY 8尝试编写一个只读数据库
SQLITE_INTERRUPT 9操作由sqlite_interrupt终止
SQLITE_IOERR 10发生某种磁盘I / O错误
SQLITE_CORRUPT 11数据库磁盘映像格式错误
SQLITE_NOTFOUND 12(仅内部)未找到表或记录
SQLITE_FULL 13插入失败,因为数据库已满
SQLITE_CANTOPEN 14无法打开数据库文件
SQLITE_PROTOCOL 15数据库锁定协议错误
SQLITE_EMPTY 16(仅内部)数据库表为空
SQLITE_SCHEMA 17数据库架构已更改
SQLITE_TOOBIG 18表有太多行
SQLITE_CONSTRAINT 19因违反约束而中止
SQLITE_MISMATCH 20数据类型不匹配
SQLITE_MISUSE 21库使用不正确
SQLITE_NOLFS 22使用主机不支持的OS功能
SQLITE_AUTH 23授权被拒绝
SQLITE_ROW 100 sqlite3_step已准备好用于另一行
SQLITE_DONE 101 sqlite3_step已完成执行
执行SQL语句
Func sqlite3_exec一步查询执行接口。 ...
Sqlite3_prepare_v2接口将单个SQL语句编译为字节代码,以供以后执行。该接口是访问数据库的首选方式。
SQL语是sqlite3_prepare_v2的UTF-8字符串。 sqlite3_prepare16_v2的工作方式相同,除了它希望将UTF-16 WideString作为SQL输入。仅编译输入字符串中的第一个SQL语句。第四个参数用指向输入字符串中下一个(未编译的)DISQLite3语句的指针填充(如果有的话)。 sqlite3_finalize例程释放准备好的SQL语句。关闭数据库之前,必须完成所有准备好的语句。 sqlite3_reset例程会重置准备好的SQL语句,以便可以再次执行它。
SQL语句可能包含形式为“?”的标记或“?Nnn”或“:aaa”,其中“ nnn”是整数,“ aaa”是标识符。这些标记表示未指定的文字值(或``通配符''),这些值随后由sqlite3_bind ...接口填充。每个通配符都有一个关联的数字,该数字是句子中的序列,或形式为“?Nnn”的“ nnn”。允许同一通配符在同一SQL语句中多次出现,在这种情况下,将使用相同的值填充通配符的所有实例。未绑定的通配符的值为NULL。
有一系列sqlite3_bind ...例程,用于在准备好的SQL语句中为通配符分配值。未绑定的通配符将被解释为NULL。 sqlite3_reset doe
不会置绑定。但是在sqlite3_reset之后,通配符可以反弹到新值。
准备好SQL语句(并可以选择绑定)后,使用以下命令执行它:
Func sqlite3_step评估SQL语句。 ...
如果sqlite3_step例程返回结果集的一行,则返回SQLITE_ROW,如果执行完成,则返回SQLITE_DONE(正常或由于错误)。如果无法打开数据库文件,则它也可能返回SQLITE_BUSY。如果返回值为SQLITE_ROW,则可以使用以下例程提取有关结果集该行的信息:
Sqlite3_column_count函数返回结果集中的列数。在sqlite3_prepare_v2之后可以随时调用sqlite3_column_count。 sqlite3_data_count的工作方式与sqlite3_column_count相似,不同之处在于它仅在sqlite3_step之后工作。如果先前对sqlite3_step的调用返回了SQLITE_DONE或错误代码,则sqlite3_data_count将返回0,而sqlite3_column_count将继续返回结果集中的列数。
检查使用其他sqlite3_column _...函数检查返回的数据,所有这些函数都将列号作为第二个参数。列从左到右索引。请注意,这与从1开始索引的参数不同。
Sqlite3_column_decltype例程返回文本,这是CREATE TABLE语句中列的声明类型。对于表达式,返回类型是一个空字符串。 sqlite3_column_name返回第N列的名称。 sqlite3_column_bytes返回类型为BLOB的列中的字节数或使用UTF-8编码的TEXT字符串中的字节数。 sqlite3_column_bytes16对于BLOB返回相同的值,但是TEXT字符串返回UTF-16 WideString编码中的字节数。 sqlite3_column_blob返回BLOB数据。 sqlite3_column_text将文本数据作为UTF-8返回。 sqlite3_column_text16返回TEXT数据作为UTF-16。 sqlite3_column_int返回32位INTEGER数据。 sqlite3_column_int64返回64位INTEGER数据。最后,sqlite3_column_double返回浮点数据。
不必以sqlite3_column_type指定的格式检索数据。如果要求使用其他格式,则将自动转换数据。
换可以使先前对sqlite3_column_blob,sqlite3_column_text和/或sqlite3_column_text16的调用返回的指针无效。在以下情况下,该指针可能无效:
初始内容为BLOB,并调用sqlite3_column_text或sqlite3_column_text16。您可能需要在字符串中添加零终止符。
初始内容为UTF-8文本,并调用sqlite3_column_bytes16或sqlite3_column_text16。内容必须转换为UTF-16。
初始内容为UTF-16文本,并调用sqlite3_column_bytes或sqlite3_column_text。内容必须转换为UTF-8。
请注意,UTF-16be和UTF-16le之间的转换始终在原位进行,不会使前一个指针无效,但是当然会修改前一个指针指向的缓冲区的内容。其他类型的转换在可能的情况下就地完成,但有时是不可能的,在这种情况下,先前的指针无效。
最安全,最容易记住的策略是:假设任何结果都来自
Sqlite3_column_blob,
Sqlite3_column_text,或
Sqlite3_column_text16
后续调用无效
Sqlite3_column_bytes,
Sqlite3_column_bytes16,
Sqlite3_column_text,或
Sqlite3_column_text16。
意味着这意味着您应始终在调用sqlite3_column_blob,sqlite3_column_text或sqlite3_column_text16之前调用sqlite3_column_bytes或sqlite3_column_bytes16。
用户自定义功能
可以使用以下例程创建用户定义的SQL函数:
Func sqlite3_create_function创建或重新定义SQL函数。 ...
函数sqlite3_create_function16请参见sqlite3_create_function。
NArg参数指定函数的参数数量。值为0表示允许任意数量的参数。 eTextRep参数指定函数参数的预期文本值。此参数的值应为SQLITE_UTF8,SQLITE_UTF16,SQLITE_UTF16BE,SQLITE_UTF16LE或SQLITE_ANY之一。 DISQLite3允许使用不同的文本表示形式实现同一功能的多种实现。数据库引擎选择的功能应使所需的文本转换次数最少。
普通函数仅指定xFunc,并将xStep和xFinal设置为NULL。聚合函数指定xStep和xFinal并将xFunc设置为NULL。没有单独的sqlite3_create_aggregate API。
函数名称在UTF-8中指定。单独的sqlite3_create_function16 API与sqlite_create_function的工作方式相同,不同之处在于,函数名指定为UTF-16 WideString。
该函数的参数是指向sqlite3_value结构的指针。以下例程用于从这些“值”中提取有用的信息
Sqlite3_create_collation函数指定排序规则序列名称和比较函数以实现排序规则序列。 比较功能仅用于比较文本值。 eTextRep参数是SQLITE_UTF8,SQLITE_UTF16LE,SQLITE_UTF16BE或SQLITE_ANY之一,用于指定比较功能使用的文本表示形式。 对于每个UTF-8,UTF-16LE和UTF-16BE文本表示形式,相同的整理顺序可以
有单独的比较功能。 sqlite3_create_collation16的工作原理与sqlite3_create_collation相似,不同之处在于,排序规则名称指定为UTF-16 WideString而不是UTF-8。
sqlite3_collation_needed例程注册一个回调。 如果数据库引擎遇到未知的排序规则序列,它将调用回调。 回调可以找到适当的比较函数,并根据需要调用sqlite_3_create_collation。 回调的第四个参数是UTF-8中整理序列的名称。 对于sqlite3_collation_needed16,回调将整理序列名称作为UTF-16 WideString发送。
软件特色:
即使在系统崩溃和电源故障之后,事务也是原子的,一致的,隔离的和持久的(ACID)。
零配置-无需设置或管理。
实现大多数SQL92。
完整的数据库存储在单个(可能是加密的)磁盘文件中。
支持TB级数据库以及千兆字节大小的字符串和Blob。
自包含:没有外部依赖性,没有DLL。
占用空间小和智能链接:仅编译所需的代码,仅添加300 KB的代码空间。
不需要Db.pas,它允许DISQLite3与各种Delphi进行编译,包括Delphi Standard和Delphi Personal。
DataTDataSet后代可用于处理现有的数据感知控件和报告生成器。
大多数操作都比其他流行的数据库引擎更快。
简单易用的API层:本机,对象和TDataSet。
使用默认的SQLite库,Linux和MacOS也可以访问使用DISQLite3创建的数据库文件。
破解方法:
1,程序安装完成后,不要先运行程序,打开安装包,将crack文件夹中所有crack文件的内容复制到粘贴板
2,打开程序安装路径文件夹,并将其替换为目标位置的文件
3.将Source目录和DX4目录添加到DelphiXE4中的Tools-> Options ...-> Library path中。
4.在Delphi XE4的IDE中,打开DISQLite3安装目录的Source目录中的DISQLite3_DXE4.dproj文件。
5.打开.dproj文件后,在项目管理器中单击DISQLite3_DXE4.bpl,然后右键单击“安装”。至此,该组件已安装。
软件功能:
1,加密支持
DISQLite3添加了AES加密,不保留任何文件作为DISQLite3数据库的身份。
2,无需dll
DISQLite3直接编译为应用程序的可执行文件。不再担心不兼容,动态链接库过时或丢失。
3.一列单位
在添加DISQLite3Api之后,整个DISQLite3数据库引擎都包含在Delphi Pascal源代码单元中。
4. Delphi优化链接
DISQLite3的优化链接与Delphi的默认调用函数约定完全匹配。与SQLite3相比,某些操作的性能提高了50%。
5.非常小的占地面积
DISQLite3功能强大,快速而又小巧。完整的DISQLite3数据库引擎仅向您的应用程序添加了大约300 KB的代码空间,尤其是对于个人版本。这样就可以创建最小为350 KB的完整数据库应用程序,甚至比SQLite3动态链接文件SQLite3.dll还要小。
DISQLite3和SQLite3
DISQLite3基于流行的SQLite3数据库引擎的源代码库。因此,DISQLite3继承了SQLite3的所有功能。它会打开,读取和修改SQLite3数据库文件(如SQLite3)。使用DISQLite3创建的数据库文件与SQLite3完全兼容,包括非Windows平台。
尽管有相似之处,但DISQLite3和SQLite3是两个单独的产品。 DISQLite3是SQLite3的Delphi端口。与SQLite3不同,DISQLite3不在公共域中。 DISQLite3是作为个人和非商业用途的免费软件发布的。 DISQLite3的商业使用需要事先进行产品注册。
专业DISQLite3的专业版本(商业和源代码)会打开使用该库的个人版本创建的数据库文件,因此您可以随时切换到DISQLite Pro并继续使用现有数据库。此外,DISQLite3的专业版还添加了该库的个人版中没有的高级功能
安装步骤:
1.单击此网站上提供的下载路径以下载相应的程序安装包
2.您是否完全同意上述协议的所有条款?如果没有异议,请点击“同意”按钮;
3.用户可以根据需要单击浏览按钮更改应用程序的安装路径。
4,等待应用程序安装进度栏加载,需要等待一段时间
5.单击“安装”以弹出程序安装完成界面,然后单击“退出”按钮。