客户端开发-数据库

嵌入式数据库

首选SQLite

获得过 Google-O'Reilly Open Source Awards 2005年大奖,Firefox, SecondLife 采用。

特性

基本SQL ,包括事务
全文检索
能够整库强加密,或者字段加密
占用内存少、速度快满足大部分场合

详细 features见这儿

使用
直接使用其接口 不太方便,建议稍做封装

1 基本操作
create
sqlite3x::sqlite3_connection con("path/to/dbfile");
con.executenonquery("CREATE TABLE IF NOT EXISTS user(name TEXT PRIMARY KEY, passwd TEXT)");

select
sqlite3x::sqlite3_command cmd(con, "SELECT name, passwd FROM user ORDER BY time DESC");
sqlite3x::sqlite3_reader reader = cmd.executereader();
while(reader.read()) {
  std::string name = reader.getstring(0);
  std::string passwd = reader.getstring(1);
}

update
sqlite3x::sqlite3_command cmd(con, "REPLACE INTO user(passwd) values (?)");
cmd.bind(1, "new passwd");
cmd.executenonquery();

2 全文检索
WHERE field LIKE "%dog%"

3 加密
编译 sqlite3 时定义 SQLITE_HAS_CODEC 宏,并实现
int sqlite3_key(sqlite3 *db, const void *zKey, int nKey);
int sqlite3_rekey(sqlite3 *db, const void *zKey, int nKey);
等函数。

4 注意
其接口分utf8, unicode两种,接口不同数据库文件内码也会不同。
其命令行工具是排错的好帮手

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值