FireDAC 下的 Sqlite [6] - 加密
主要就是设置 TFDConnection 的两个链接参数: Password, NewPassword, 非常简单.
const
dbPath = 'C:\Temp\SQLiteTest.sdb'; {建立加密数据库, 密码是 mm123}
procedure TForm1.FormCreate(Sender: TObject);
const
strTable = 'CREATE TABLE MyTable(Id integer, Name string(10), Age byte)'; //Id, Name, Age 三个字段
begin
if FileExists(dbPath) then DeleteFile(dbPath); FDConnection1.Params.Add('DriverID=SQLite');
FDConnection1.Params.Add('Database=' + dbPath);
FDConnection1.Params.Add('Password=mm123'); //相同与 Password=aes-256:mm123; aes-256 是默认的加密算法;
//还有: aes-128,aes-192,aes-256, aes-ctr-128,aes-ctr-192,aes-ctr-256, aes-ecb-128,aes-ecb-192,aes-ecb-256
//建表并输入测试数据
FDConnection1.ExecSQL(strTable);
FDConnection1.ExecSQL('INSERT INTO MyTable(Id, Name, Age) VALUES(:1, :2, :3)', [1, 'abc', 23]);
end; {打开有密码的数据库}
procedure TForm1.Button1Click(Sender: TObject);
begin
FDConnection1.Params.Clear;
FDConnection1.Connected := False; FDConnection1.Params.Add('DriverID=SQLite');
FDConnection1.Params.Add('Database=' + dbPath);
FDConnection1.Params.Add('Password=mm123');
FDConnection1.Connected := True;
FDQuery1.Open('SELECT * FROM MyTable');
end; {修改密码}
procedure TForm1.Button2Click(Sender: TObject);
begin
FDConnection1.Params.Clear;
FDConnection1.Connected := False; FDConnection1.Params.Add('DriverID=SQLite');
FDConnection1.Params.Add('Database=' + dbPath);
FDConnection1.Params.Add('Password=mm123');
FDConnection1.Params.Add('NewPassword=mm12345'); //新密码, 密码为空表示取消密码
FDConnection1.Connected := True;
FDConnection1.Connected := False;
end;
FireDAC 还提供了一个专用的加密控件 TFDSQLiteSecurity, 因为上面的方法足够方便了, 所以用处不大.
FDSQLiteSecurity1.DriverLink := FDPhysSQLiteDriverLink1; //TFDSQLiteSecurity 和 FireDAC.Phys.SQLite 里的其他四个控件, 使用前都要先指定这个属性
FDSQLiteSecurity1.Database := dbPath; //指定数据库路径
FDSQLiteSecurity1.Password := 'mm111'; //密码
FDSQLiteSecurity1.ToPassword := 'mm222'; //新密码
FDSQLiteSecurity1.SetPassword; //设置密码
FDSQLiteSecurity1.ChangePassword; //修改密码
FDSQLiteSecurity1.RemovePassword; //移除密码
帮助里面说: 通过 FireDAC 加密的 SQLite 与其它并不兼容.
FireDAC 下的 Sqlite [6] - 加密的更多相关文章
- FireDAC 下的 Sqlite [3] - 获取数据库的基本信息
在空白窗体上添加: TFDConnection, TFDPhysSQLiteDriverLink, TFDGUIxWaitCursor, TMemo procedure TForm1.FormCrea ...
- FireDAC 下的 Sqlite [9] - 关于排序
SQLite 内部是按二进制排序, 可以支持 ANSI; FrieDAC 通过 TFDSQLiteCollation 支持了 Unicode 排序, 并可通过其 OnCompare 事件自定义排序. ...
- FireDAC 下的 Sqlite [4] - 创建数据库
建立数据库的代码: {建立内存数据库的一般代码:} begin FDConnection1.DriverName := 'SQLite'; //同 FDConnection1.Params.Add(' ...
- FireDAC 下的 Sqlite [2] - 第一个例子
为了方便测试, 我把官方提供的 C:\Users\Public\Documents\Embarcadero\Studio\14.0\Samples\data\FDDemo.sdb 复制了一份到 C:\ ...
- FireDAC 下的 Sqlite [1] - 前言
很长时间没静下心来写博客了, 现在回来, 是 Delphi 不断地进步让我感动.振奋. Delphi XE5 并入了 FireDAC, 第一印象非常好, 恐怕 dbExpress 等等都要靠边站了. ...
- FireDAC 下的 Sqlite [11] - 关于批量提交 SQL 命令的测试
可把下面代码直接贴在空白窗体上, 以快速完成窗体设计: object DBGrid1: TDBGrid Left = 0 Top = 0 Width = 265 Height = 338 Align ...
- FireDAC 下的 Sqlite [10] - 使用 R-Tree 搜索
R-Tree 主要用于三维空间的搜索, 据说这种搜索算法非常之快, 哪怕百万条记录也是眨眼间的事! SQLite 支持 1-5 维, FireDAC 也提供了 TFDSQLiteRTree 控件以方便 ...
- FireDAC 下的 Sqlite [8] - 自定义函数
Sqlite 本身没有这个功能, FireDAC 通过 TFDSQLiteFunction 增加了该功能; 尽管通过某些 SQL 语句或通过视图也可以达到类似效果, 但函数会更灵活些. 本例先建了一个 ...
- FireDAC 下的 Sqlite [7] - 备份、优化、事务(Transaction)
用 TFDSQLiteBackup 控件, 两三行代码即可完成 Sqlite 数据库的备份. procedure TForm1.Button1Click(Sender: TObject); begin ...
随机推荐
- OC中实现锁
熟悉多线程开发的同学对锁肯定不陌生,但是OC中如何实现锁呢?给大家科普一下. 首先构建一个测试用的类,假想它是我们的一个共享资源,method1与method2是互斥的,代码如下: @implemen ...
- C 语言结构体之点运算符( . )和箭头运算符( -> )的区别
很多时候,在对结构体进行相应的编码时,时而发现是用点运算符( . ),时而是用箭头运算符( -> ):那么这两者之间的使用有什么区别么? 相同点:两者都是二元操作符,而且右边的操作数都是成员的名 ...
- 01 workerman之GatewayWorker框架简单使用
1.GatewayWorker框架是什么? GatewayWorker基于Workerman开发的一个项目框架,用于快速开发TCP长连接应用,例如app推送服务端.即时IM服务端.游戏服务端.物联网. ...
- linux网络配置原理
一.网络连接的基本原理 http://www.cnblogs.com/dyllove98/archive/2013/08/06/3241294.html
- MVC 获取路由的 URL 参数值和默认值的集合。
跟aspx页面不一样 用Request 获取不到路由配置的 参数 可以采用下面方法获取 public ActionResult List() { //获取路由中所有的key foreach (stri ...
- Dhaka2011
Dhaka2011 A - Binary Matrix 题目描述:有一个\(n \times m\)的\(01\)矩阵,这一矩阵第一行和最后一行是相邻的,第一列和最后一列是相邻的,现在每次可以交换相邻 ...
- android 读取本地json文件 解决显示乱码显示
1.读取本地JSON ,但是显示汉字乱码 public static String readLocalJson(Context context, String fileName){ ...
- 测试开发之前端——No2.HTML5中的标签
HTML5中的标签. 标签 描述 <!--...--> 定义注释. <!DOCTYPE> 定义文档类型. <a> 定义超链接. <abbr> 定义缩写 ...
- 3种高效的Tags标签系统数据库设计方案分享
需求背景 目前主流的博客系统.CMS都会有一个TAG标签系统,不仅可以让内容链接的结构化增强,而且可以让文章根据Tag来区分.相比传统老式的Keyword模式,这种Tag模式可以单独的设计一个Map的 ...
- MAC下调试JSON接口的工具(HTTP抓包工具)
MAC下的HTTP接口抓包工具,专业级: 专门做JSON接口测试的工具,简单好用!