zoukankan      html  css  js  c++  java
  • 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;

  • 相关阅读:
    Centos7 安装RabbitMQ 3.6.1
    面向对象编程(类的绑定方法与非绑定方法)
    面向对象编程(封装、封装的意义、封装与扩展性、@property)
    函数式编程(__slots__)
    面向对象编程(实例属性、类属性)
    面向对象编程(获取对象信息)
    面向对象编程(继承、多态)
    函数式编程(访问限制)
    面向对象编程(类与实例)
    面向对象编程(基础简介)
  • 原文地址:https://www.cnblogs.com/ljl_falcon/p/2354017.html
Copyright © 2011-2022 走看看