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

//摘自: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462754.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

用STATSVN统计公司SVN代码修改

直接用LOG,BOSS还是不满意,那只好架上JDK,用STATSVN了。 跑得还顺利,只是具体代码没跑出来。。 但共用一个帐号,害人呀,还好有提交注释里有程序员的名字。。 STATSVN文档很简单,简单报告也就一个…

Informix IDS 11零碎治理(918考试)认证指南,第 7 部分: IDS复制(24)

SDS:看管可以使用 onstat 或零碎看管接口(SMI)表查察 SDS 效能器统计信息。本节品评争论以下主题:onstat 选项 sysmaster 表 旧事日志输出 onstat 选项可以使用 onstat -g sds 饬令查察 SDS 效能器统计信息。onstat 的输出取决于运…

leafLet入门教程兼leafLet API中文文档参考

英文文档参考:https://leafletjs.com/reference-1.3.4.html#popup 博客参考:https://blog.csdn.net/qq_36595013/article/details/83144874#leafLet_API__243 使用说明参考:https://www.cnblogs.com/cainiaomeng/p/6072139.html转载于:https:…

MySQL源码解读之数据结构-LF_DYNARRAY

MySQL的代码中实现了一个Lock Free的Hash结构,称作LF_Hash。MySQL的不少模块使用了LF_Hash,比如Metadata Lock就依赖于它。但由于使用的方法不正确,导致了bug#98911和bug#98624。理解LF_Hash的实现细节,可以帮助我们用好LF_Hash。…

Flex通过Blazeds利用Remoteservice与后台java消息推送

Flex通过Blazeds利用Remoteservice与后台java消息推送 准备工作:Myeclipse中先建立一个Web project工程,然后导入Blazeds的文件,再转换为Flex项目类型。前言:Flex 通过开源的BlazeDS消息服务来支持订阅及发布消息。这个消息服务管…

如何运行一个Vue项目

一开始很多刚入手vue.js的人,会扒GitHub上的开源项目,但是发现不知如何运行GitHub上的开源项目,很尴尬。通过查阅网上教程,成功搭建好项目环境,同时对前段工程化有了朦朦胧胧的认知,因此将环境搭建过程分享…

用上Linux后收集变得山穷水尽

作者: ginceo 出自: http://www.linuxdiyf.com   没用Linux时上彀总得先开防火墙,然后再开杀毒软件把守,假如少了这些步骤我的机子将遭到史无前例的毁伤,有的时分换来的是硬盘继续事项一小时。遇到网友发来的音讯还是毛骨悚然,…

MySQL5.7 常用系统表大全

MySQL5.7 默认的模式有:information_schema, 具有 61个表; m ysqL, 具有31个表; performance_schema,具有87个表; sys, 具有1个表, 100个视图. Information_schema数据库是MySQL自带的,它提供了…

Hibernate初学之CURD

Hibernate初学之CURD 以前学过JDBC的增删改查,感觉挺方便的,用hibernate框架则会更加简便, 关于hibernate的增删改查模块,我感觉用代码解释再合适不过了; 首先是导包问题:应用hibernate需要导十个包&#x…

innobackupex备份工具

Top NSD DBA1 DAY07 innobackupex备份工具1 innobackupex备份工具 1.1 问题 安装percona软件包innobackupex完整备份、增量备份操作。恢复数据1.2 步骤 实现此案例需要按照如下步骤进行。 步骤一:安装XtraBackup软件包 1)了解软件包描述信息 [rootdbsvr1…

计算机网络读书笔记(1)

传输控制协议TCP最主要特点: 1、 面向连接的传输层协议,类似于打电话 2、 点对点(一对一),每一条TCP只能有两个端点 3、 提供可靠交付的服务 4、 全双工通信 5、 面向字节流(所谓流:流入到…

网卡驱动收发包过程图解

网卡 网卡工作在物理层和数据链路层,主要由PHY/MAC芯片、Tx/Rx FIFO、DMA等组成,其中网线通过变压器接PHY芯片、PHY芯片通过MII接MAC芯片、MAC芯片接PCI总线 PHY芯片主要负责:CSMA/CD、模数转换、编解码、串并转换 MAC芯片主要负责&#x…

Cisco路由器全局、接口、协议调试指南

全局调试 在配置Cisco路由器时,全局和接口命令的界限是十分明显的。在这种情况下,我们使用“全局”来标识那些不能用于接口调试或者特定的传输介质类型 和协议调试的命令。例如,在2500系列路由器中,就可以使用调试命令分析Cisco发…

发送带颜色的MSG

作者:深渊野鱼 来源:博客园 发布时间:2008-01-09 15:04 阅读:245 次 原文链接 [收藏] 用户经常发送MESSAGE,MESSAGE的颜色往往是绿色的,其实是可以发送彩色的MESSAGE的。解答 1.创建SNDCOLMSG CLP程序。SNDCOL…

在c++中,如果派生类没有重写基类中对应virtual函数会怎样?

在c中&#xff0c;如果一个派生类没有重写基类中对应的虚函数&#xff0c;那么在派生类的构造函数中依然会创建虚指针&#xff0c;但是该虚指针指向的是基类的虚表。 #include <iostream> #include <string>class Base { public:virtual void foo() {std::cout &l…

哪些类继承了Collection接口

Collection集合的基本结构&#xff1a; 1、Collection接口 Collection是最基本集合接口&#xff0c;它定义了一组允许重复的对象。Collection接口派生了两个子接口Set和List&#xff0c;分别定义了两种不同的存储方式&#xff0c;如下&#xff1a; 2、 Set接口 Set接口继承于Co…

陶哲轩实分析 定理 13.1.5

设 $(X,d_X)$ 是度量空间,并设 $(Y,d_Y)$ 是另一个度量空间.设 $f:X\to Y$是函数,那么 $f$ 是连续的可以推出 (c)只要 $V$ 是 $Y$ 中的开集,集合 $f^{-1}(V):\{x\in X:f(x)\in V\}$ 就 是 $X$ 中的开集.\begin{proof} 为了证明 $f^{-1}(V)$ 是开集,我们只用证明对于 $f^{-1}(V)…

安装Orchard错误

直接使用Visual Studio2010运行没有任何问题&#xff0c;但是配置到IIS就报如下的错误&#xff1a; 错误摘要 HTTP 错误 500.19 - Internal Server Error 无法访问请求的页面&#xff0c;因为该页的相关配置数据无效。 模块 IIS Web Core 通知 BeginRequest 处理程序 尚未确定 …

在c++中一个空类占用的字节数

结论&#xff1a; 在c中一个空类占用&#xff1a;1Byte。 有的同学认为一个空类占0Byte&#xff0c;那么定义一个空类时&#xff0c;他存放到哪里呢&#xff1f;为此&#xff0c;在c编译器中&#xff0c;为空类设置了占用1Byte内存。 #include <iostream> // std::c…

SpringBoot整合Mybatis-plus实现增删查改

今天给大家分享一下SpringBoot整合Mybatis-plus的增删查改案例。 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance&qu…