Berkeley db管理
1. 打开数据库
首先必须调用db_create()函数初始化DB句柄,然后就可以使用open()方法打开数据库了。默认情况下,如果数据库不存在,DB不会创建。为了覆盖缺省行为,可以在open()调用中指定DB_CREATE标记。
以下代码示范了如何打开数据库:
#include <db.h>
...
DB *dbp;
u_int32_t flags;
int ret;
ret = db_create(&dbp, NULL, 0);
if (ret != 0) {
}
flags = DB_CREATE;
ret = dbp->open(dbp,
NULL,
"my_db.db",
NULL,
DB_BTREE,
flags,
0);
if (ret != 0) {
}
在open参数中,DB_BTREE是DB的一种访问方法,此外还有DB_HASH、DB_HASH、DB_RECNO、DB_QUEUE等访问方法。
DB 存取数据的基本方式是key/value对,DB_BTREE和DB_HASH的key可为任意值,而DB_RECNO和DB_QUEUE的 key只能为逻辑上的数字。DB_BTREE用在记录数据较小的情况,通常能直接保存在内存里,而DB_HASH用在记录数据较大的情况。这里的记录数据 指单条记录。
DB_QUEUE和DB_RECNO用数字来标记每条记录(记录ID),前者逻辑数字不会随着记录的删除发生变化,后者会发生变化。
打开标记出了DB_CREATE外,还可有如下标记的或组合。
– DB_EXCL
独占式创建,如果数据库已经存在则打开失败,仅和DB_CREATE组合使用。
– DB_RDONLY
只读方式打开。
– DB_TRUNCATE
截断磁盘上的数据库文件,清空数据。 继续阅读