返回
disqlite3 5.21.1 绿色免费版

disqlite3

立即下载

小编提示:PC版不适合移动端,如下载有问题点击反馈!

软件介绍

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文件的内容复制到粘贴板

disqlite3

2,打开程序安装路径文件夹,并将其替换为目标位置的文件

disqlite3

3.将Source目录和DX4目录添加到DelphiXE4中的Tools-> Options ...-> Library path中。

disqlite3

4.在Delphi XE4的IDE中,打开DISQLite3安装目录的Source目录中的DISQLite3_DXE4.dproj文件。

disqlite3

5.打开.dproj文件后,在项目管理器中单击DISQLite3_DXE4.bpl,然后右键单击“安装”。至此,该组件已安装。

disqlite3

软件功能:

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.单击此网站上提供的下载路径以下载相应的程序安装包

disqlite3

2.您是否完全同意上述协议的所有条款?如果没有异议,请点击“同意”按钮;

disqlite3

3.用户可以根据需要单击浏览按钮更改应用程序的安装路径。

disqlite3

4,等待应用程序安装进度栏加载,需要等待一段时间

disqlite3

5.单击“安装”以弹出程序安装完成界面,然后单击“退出”按钮。

disqlite3

精品推荐
猜你喜欢
用户评论