呵,Delphi,又是这个家伙!没办法,之前搞Delphi,隔了N年后又回来搞Delphi,对她也是又爱又狠...,主要是用来用去,还是前女友好,用起来舒服、贴心且省事,你能想到的她全帮你想到了,没想到的她早已帮你准备好了....(当然那些太前端、时尚的,你就别去了,因为绝大部分都是没有这个控制能力的,东抄西拼也就是那么回事,看看就好了,好比现在的社会中很多高档时尚女人,哪怕是公交车,也你轮不到你,除非你过亿的身价且你有接盘侠的心态...)~搞技术人的YY,~!@#¥,大家懂得...,理解一下!
        本系列主要是讲在Delphi下如何玩SQLite,百度了一下,好像还没有类似的系列教程(说教程也不严谨,或许系列文章较好些吧),不扯了,时间和精力有限,咱们直接脱光直奔主题吧...

一、Delphi下如何玩SQLite,总的来讲有两个思路,一是封装类(单元类)玩法,二是控件玩法。手段上也千奇百怪,有静态引用 obj 的,有动态链接 dll 的,还有把 dll 嵌入资源文件的,甚至还有用其他语言改写源码的,之前我就看过用 C# 重写的源码。如Delphi 官方的FireDAC就是在 Windwos 平台下默认使用了 sqlite3_x86.obj 或 sqlite3_x64.obj(FireDAC.Phys.SQLiteCli.pas), 而非 dll。具体大家要了解清楚。下面我就分类的简单说一说,后续的文章,分再分类分章进行一一讲述。

二、Delphi下使用封装类玩SQLite
       
比较著名和经典的SQLite封装类(单元类,非控件),可能要算是“A simple Delphi wrapper for Sqlite3(Update 10 February 2011)”,精简的2个pas源文件(SQLite3.pas、SQLiteTable3.pas),最后的“新版”还有一个sqlite3udf.pas(UDF,自定义函数),说是精简,其实基本上,读写SQLite3数据库是没有什么问题的,但有一个特别要注意的是,因为是精简的封装类,而不非控件,所以没有TDataset 和 databinding(好像有人进行了改造或升级,但意义不大),玩拖拉控件的人,可能就是不爽了,但确实是很好用,简单且快速。
       或许是“A simple Delphi wrapper for Sqlite3”太著名了或许他不想背后默默的贡献代码给别人做嫁衣,最终在“A simple Delphi wrapper for Sqlite3”基础上,有个高手进行了改造、优化、精简,去掉了许多重复的功能(好像是去掉了Sqlite低版本的一些支持和兼容),变成了一个叫“Delphi SQLite Wrapper” ,最终版本为:V2.1.2 2012-08-21
Delphi SQLite Wrapper特性(其实两者都有很多的共性)】:

  1. 至少需要Sqlite3.dll 的3.7.1版本或以上,开源的东东,我想没理由不使用最新版本,所以这个不是问题。(截止到当前Sqlite最新为:SQLite Version 3.39.4 (2022-09-29));
  2. 它不是组件,只是单元。 所以将此封装类(单元文件)包含到项目中就可以使用,并创建处理Sqlite3数据库的类;
  3. 它非常轻量级代码,所以没有集成到Delphi数据库模型(控件)中;
  4. 支持任何Sqlite的SQL命令并遍历结果集、可以使用准备好的查询、可以使用参数化查询、可以使用事务(包括保存点[savepoints])、可以定义自己的UDF(用户定义的SQL函数)、可以定义自己的排序规则;

       具体如何使用,后面我会专门的章节和例子进行讲解。

二、Delphi下使用控件玩SQLite
       玩Delphi的人都知道,控件拖拉是特色,当然开发人员也慢慢的变傻、变懒了...,我想了一下,用玩SQLite的控件,主要有如下几个:
1)、UniDAC,这个东东,我想大家都知道吧,不懂得就自己百度了;
2)、FireDAC,呵,之前叫AnyDAC吧,后来给Delphi收购了,并且Delphi XE5 并入了 FireDAC, 第一印象非常好, 恐怕 dbExpress 等等都要靠边站了,据有关网友测试,FireDAC比ADO的速度快5~10倍,想一想,能让Delphi这个缺钱的主,进行收购和认可且集成Delphi XE5+,想想也肯定不一般。
       Delphi 官方首次引入 Sqlite, 应该是在 XE3(提供了 System.Sqlite 单元,使用System.Sqlite.pas),不过需要 Sqlite.dll 的支持,接着有了 FireDAC 对 Sqlite 更完善的支持(它没有使用 System.Sqlite.pas),特别需要说明的是,在 Windwos 平台下默认使用了 sqlite3_x86.obj 或 sqlite3_x64.obj(FireDAC.Phys.SQLiteCli.pas), 而非 dll,再加上 Sqlite 本来就不需要其他部署,太方便了。
3)、SQLite Data Access Components (LiteDAC),是第三方收费的商业控件,是著名的Devart公司产品。SQLite数据访问组件(LiteDAC)是一个组件库,它提供了来自Delphi和C ++ Builder的 SQLite的本机连接,包括Community Edition,以及 Windows,Linux,macOS,iOS和Android上的Lazarus(和Free Pascal)。两个32位和64位的平台上。LiteDAC专为程序员开发真正的跨平台桌面和移动SQLite数据库应用程序而设计,无需部署任何其他库。目前源码版本为:SQLite Data Access Components (LiteDAC) V5.0.2_Full Sources
4)、DISQLite3控件,跟SQLiteSpy是同源产品, 是第三方收费的商业控件 。DISQLite3直接编译到应用程序的可执行文件中,故不需要Sqlite3.dll 的支持。也不用再担心不兼容、过时或缺少动态链接库。
       DISQLite3是强大的,快速的和小的。完整的DISQLite3数据库引擎仅为您的应用程序增加了大约300 KB的代码空间——对于个人版本来说更是如此。这允许创建小到350 KB的完整数据库应用程序,甚至比SQLite3动态链接文件SQLite3 .dll还要小。
       DISQLite3是基于流行的SQLite3数据库引擎的源代码库。因此,DISQLite3继承了SQLite3的所有功能。它像SQLite3一样打开、读取和修改SQLite3数据库文件。
       用DISQLite3创建的数据库文件完全兼容SQLite3,包括非windows平台(支持Linux和Mac操作系统)。
       目前源码版本为:DISQLite3 Pro 5.20.0 Full Source
5)、ZeosDBO/ZeosLib控件,当前最新版本为:zeosdbo-7.2.14(Last Update: 2022-09-27),支持MySQL, MariaDB, PostgreSQL, Interbase, Firebird, MS SQL Server, SAP Adaptive Server Enterprise and Adaptive Server Anywhere (previously Sybase), Oracle and SQLite for Delphi, FreePascal/Lazarus and C++ Builder.官方网址、官方论坛。
6)、还有一些其他的控件,但基本上有了上述的几个,非必要就懒得说了,数据库控件只是一个联接读写数据的工具而已,非业务逻辑,所以,我就懒得再介绍了,如有需要自己百度吧...

【一起学SQLite】--Delphi下的SQLite之简介(3)相关推荐

  1. C/C++下使用SQLite轻量级数据库

    最近公司研发组研发一个产品使用了这个轻量级的数据库,感觉的特别有趣,就初步看看. 一.SQLite SQLite,是一款轻型的数据库,是遵守ACID的关联式数据库管理系统,它的设计目标是嵌入式的,而且 ...

  2. DELPHI下的SOCK编程(转)

    DELPHI下的SOCK编程       本文是写给公司新来的程序员的,算是一点培训的教材.本文不会涉及太多的编程细节,只是简单讲解在DELPHI下进行Winsock编程最好了解的知识. 题外话:我认 ...

  3. php读取加密sqlite,加密你的SQLite

    关于sqlite sqlite是一个轻量的.跨平台的.开源的数据库引擎,它的在读写效率.消耗总量.延迟时间和整体简单性上具有的优越性,使其成为移动平台数据库的最佳解决方案(如iOS.Android). ...

  4. 【SQLite关系型数据库】SQLite语法

    作者:郭孝星 微博:郭孝星的新浪微博 邮箱:guoxiaoxingv@163.com 博客:http://blog.csdn.net/allenwells Github:https://github. ...

  5. SQLite之C#连接SQLite

    SQLite之C#连接SQLite 2015-05-05 17:52  糯米粥  阅读(40651)  评论(1)  编辑  收藏 我的程序突然不能访问数据库了,回过头来再看这文章,才知道是自己的几天 ...

  6. 轻量级数据库sqlite,spring boot+sqlite的配置详解 (一)

    spring boot+sqlite的配置,及成功运行详解 sqlite数据库的安装与调试 首先,通过sqlite官方地址下载对应的安装包 https://www.sqlite.org/downloa ...

  7. 【玩转SQLite系列】(二)SQLite创建和打开数据库的三种方式

    转载请注明出处:http://blog.csdn.net/linglongxin24/article/details/53234396 本文出自[DylanAndroid的博客] [玩转SQLite系 ...

  8. Delphi下利用WinIo模拟鼠标键盘详解

    本文最早在编程论坛上发表,文章地址:http://programbbs.com/bbs/view12-17207-1.htm,相关文件可以在上述地址的页面中下载.转载时请注明出处. 前言 一日发现Se ...

  9. Delphi下使用指针的简单总结

    由于最近公司太忙,好久没有更新我的BLOG了.原来想着写写关于HOOK驱动的文章,可是最后想想好久已经没有做驱动的东西了,怕写出来有错误,于是作罢.开发游戏也有一段时间了,发现使用DELPHI来开发网 ...

  10. Delphi下的COM编程

    Delphi通过向导可以非常迅速和方便的直接建立实现COM对象的代码,但是整个COM实现的过程被完全的封装,甚至没有VCL那么结构清晰可见. 一个没有C++下COM开发经验甚至没有接触过COM开发的D ...

最新文章

  1. pytorch中的transpose()
  2. javascript--arguments callee caller
  3. 基于文本知识库的强化学习技术——Learning to Win by Reading Manuals in a Monte-Carlo Framework
  4. 迷你世界显示未连接服务器成功,迷你世界登录未成功是什么意思 | 手游网游页游攻略大全...
  5. Python基础-数据类型转换,默认参数,关键字参数
  6. 大数据分析哪些错误需避免
  7. 5W2H | 关于写博客的七点反思
  8. qt5.15.1及以上版本进行编译(windows64位)
  9. 可视化网络监控软件OpManager获选″IT运维产品之星”
  10. 作为一名黑客,通过技术手段发现女朋友出轨了...
  11. OCR扫描识别录入之汽车车架号(VIN码)识别查询系统
  12. 手机图形计算器matlab,图形计算器Mathlab
  13. 搜索引擎下拉食云速捷详细_搜索框下拉优化淹云速捷讲信誉,下拉词上词77云26速26捷...
  14. Android 使用CameraX实现预览/拍照/录制视频/图片分析/对焦/缩放/切换摄像头等操作
  15. js 数字金额的转换 (转)
  16. mysql temporary_MySQL内部临时表(Internal Temporary Table)
  17. 如何复制网页上的任何内容(比如百度文库)
  18. 【微信小程序】在组件中刷新页面
  19. Prometheus监控系统详解
  20. PB修改源码时报错:C0176: Badly ordered TYPE and VARIABLE declarations. Is this modified exported source?

热门文章

  1. python分词与去停用词简单实操
  2. Learun,一款专注于业务,不用写代码的框架
  3. (二)数据库索引优化
  4. python移动文件到新的文件夹并重命名
  5. 虚拟机安装教程win10_Parallels Desktop如何安装windowns系统?PD虚拟机安装win10系统详细教程
  6. 【系统分析与设计】高校学生社团管理系统
  7. 嵩天python测验_考试 嵩天老师 :测验3: Python语法程序与设计(第3周)
  8. Juniper SRX240 U盘升级junos
  9. 项目接力:售前、售中、售后
  10. python爬虫设计实验