//摘自:http://bbs.witbase.com/thread-1141-1-1.html

Delphi纯代码连SQLite数据库,同时支持数据库的加密解密

Delphi纯代码连SQLite数据库,同时支持数据库的加密解密

本文的内容包括:
(1)一个实现了加密解密功能的SQLite3 dll
(2)纯Delphi代码连接SQLite数据库
(3)改进后的纯代码连接SQLite数据库,同时实现了数据库的加密解密

(1)关于SQLite数据库的C++加密实现:
    SQLite 数据库加密的一种解决方案
    http://blog.csdn.net/benny5609/archive/2008/03/17/2192786.aspx
    sqlite3.dll(404kb)

(2)一个纯Delphi代码封装的SQLite简单实现
    http://www.itwriting.com/sqlitesimple.php

感谢以上的作者,我在这里提供的只是对上面二个进行了一些修改和整合,实现了纯Delphi代码连结Sqlite数据库,并支持数据库的加密和解决,所有修改的地方已经在Delphi源程序中的进行标注,附件中的源码是基于D2009版的,如果你用的是其它版本的Delphi,只需要在工程中加入 SQLite3.pas 和 SQLiteTable3.pas(这二个文件就是纯Delphi代码封装的SQLite实现),而SQLite3.dll是实现了加密解密重新编译过的,所以这三个文件要同时加入工程(sqlite3.dll只需要放到工程目录下即可)。

下面简单介绍一下这个工具的使用方法:

uses SQLiteTable3;

(1)创建数据库

var
sql:string;
db:TSQLiteDatabase;

try
if FileExists('test.db') then DeleteFile('test.db');
//连接数据库,如果数据库文件不存在会自动创建
db:=TSQLiteDatabase.Create('test.db','dbpassword');//使用密码创建数据库
//db:=TSQLiteDatabase.Create('test.db',Nil);//无密码创建数据库
//创建USER表
sql:='CREATE TABLE USER(ID integer PRIMARY KEY AUTOINCREMENT NOT NULL,NAME VARCHAR(50),HOMEPAGE VARCHAR(255))';
db.ExecSQL(sql);
//插入一条测试数据
sql:='INSERT INTO USER VALUES(NULL,"ekinglong","http://www.blogjava.net/ekinglong")';
db.ExecSQL(sql);
finally
db.Free;
end;

(2)查询数据

var
sql:string;
db:TSQLiteDatabase;
tbl:TSQLiteTable;
name:string;
homepage:string;
begin
try
db:=TSQLiteDatabase.Create('test.db','dbpassword');
sql:='SELECT * FROM USER LIMIT 1';
tbl:=db.GetTable(sql);
if tbl.RowCount>0 then
begin
name:=tbl.FieldAsString(tbl.FieldIndex['NAME']);
homepage:=tbl.FieldAsString(tbl.FieldIndex['HOMEPAGE']);
ShowMessage('Name:'+name+#13+'HomePage:'+homepage);
end;
finally
tbl.Free;
db.Free;
end;

转载于:https://www.cnblogs.com/xunxun/archive/2011/03/03/1969682.html

Delphi纯代码连SQLite数据库,同时支持数据库的加密解密相关推荐

  1. 数据库中间件支持数据库集群方案

    咏南数据库中间件支持数据库集群方案 通过咏南数据库中间件作为PROXY(数据库代理)实现的数据库集群,非数据库层面集群. 数据库可以分库分表进行水平或垂直拆分成数据库集群. 咏南中间件作为数据库集群代 ...

  2. 每日10行代码156:Python实现简单的文件加密解密

    我常用的文件加密解密的工具是宏杰加密,但是前两天打开后发现要强制升级,升级后软件变成vip才能使用,并且不能降级.有一天,我突然想起来自己是不是可以用Python写一个加密的工具.于是就动手开是写了. ...

  3. slam魔改的支持数据库动态虚拟墙,禁行线costmap_prohibition_layer

    slam魔改的支持数据库动态虚拟墙,禁行线costmap_prohibition_layer qt界面编辑虚拟墙 qt界面编辑虚拟墙参考 readme: #### 虚拟墙使用介绍基于costmap_p ...

  4. uwp连接mysql数据库_在UWP中使用SQLite数据库,支持加密

    这个库支持Xamarin.*(iOS,Android等). .NET, .NET Core.Mono.UWP等主流系统和程序.支持对数据库文件的加密,其sqlcipher加密版为sqlite-net- ...

  5. 易语言外部数据库MySQL支持库Access数据库Sqlite数据应用

    语言虽然有自己的数据库, 但易数据库只是以简单的.类似表格的形式组织数据信息,是一个小型数据库管理系统.有时编程中必须使用其它数据库.易语言支持以ODBC方式和ADO方式操作外部数据库. 一.ODBC ...

  6. cyq.data mysql_CYQ.Data 轻量数据层之路 V4.3 版本发布[增加对SQLite,MySQL数据库的支持]...

    前言: 继上一版本:CYQ.Data 轻量数据层之路 V4.0 版本发布,又过去一个来月了,不过也过了一个新年了. 由于过年原因,因此框架也没多折腾什么,只是年前年后顺路把sqlite,MysqL两种 ...

  7. 同时支持三个mysql+sqlite+pdo的php数据库类_同时支持三个MySQL+SQLite+PDO的PHP数据库类...

    PHP学习教程文章简介: 同时支持三个MySQL+SQLite+PDO的PHP数据库类使用方法: // mysql connect $db = new SQL(mysql:host=localhost ...

  8. wp.qq.com.index.html,使用纯代码给WordPress添加文章目录功能,支持快速定位和多级目录...

    wordpress是一款强大的博客系统,支持各种DIY,今天我就给大家带来使用纯代码给Wordpress添加文章目录的功能,使看文章更简单!并且支持点击目录标题快速定位到文章页面指定内容点. 一.文章 ...

  9. 达梦dm8可视化工具_活字格兼容达梦DM8,低代码支持数据库国产化

    DM8是达梦公司在总结DM系列产品研发与应用经验的基础上,坚持开放创新.简洁实用的理念,历经五年匠心打磨,推出的新一代自研数据库.DM8和同类自主知识产权数据库一起,正在引领数据库国产化的大趋势. ( ...

最新文章

  1. Linux 编译内核
  2. 五分钟轻松搞定产品需求文档!这可能史上最全PRD文档模板…
  3. 多文档版的的正则表达式工具
  4. 修改表字段类型长度_PG修改字段
  5. Java笔记-基于Spring Boot的SOAP双向SSL认证及WS-Security
  6. 在linux中检测go语言,Linux AIDE(文件完整性检测)-Go语言中文社区
  7. python内核死亡的原因_Python xgboost:内核死亡
  8. 怎么取消计算机的用户名和密码怎么设置密码,开机密码如何取消 电脑开机密码取消设置方法介绍...
  9. 在 Mac App Store 上如何查看未完成的下载?
  10. 第四季-专题17-LCD驱动程序设计
  11. 工业设备数据采集系统-采集精灵
  12. linux更新电池驱动下载,Linux 5.13电源管理与ACPI更新已提交
  13. #PLC_一次看懂数位低通滤波器设计(含代码实现)
  14. 简述Linux下三种引号的用法,Linux Shell中有三种引号的用法
  15. 解决layui的富文本编辑器中图片的大小问题
  16. 模糊控制(二)模糊控制——模糊推理
  17. 【Android实现返回主页,禁止返回上一层等功能】
  18. 12 年前我刷了 500 道,谈谈我的学习感受
  19. 用PaddlePaddle鉴定红酒质量
  20. iptable 中文学习文档

热门文章

  1. mysql的传播特性_spring事务传播特性和mysql事务隔离级别
  2. xml html 转化为字符串,XSLT:将字符串解析为XML节点集(concret:将HTML-String转换为节点集)?...
  3. 云昆明理工大学 计算机复试,2012年昆明理工大学计算机考研复试试题(回忆版)...
  4. php5.4 curl,PHP5.0~5.6 各版本兼容性cURL文件上传功能实例分析
  5. alert 回调_JavaScript中到底什么时候回调函数Callback
  6. linux go 安装路径,在Alpine Linux D的路径中找不到已安装的Go二进制文件
  7. Android入门(九)| 滚动控件 ListView 与 RecyclerView
  8. 中科大 计算机网络5 接入网和物理媒体
  9. 职业发展 先“立功”还是先“安内”?
  10. 10个管理工作时间的小技巧