C++中使用Berkeley_DB的问题。

lcy_888 2011-10-24 09:08:45
主要想先用DB_ENV设置环境(在此设置加密算法),然后创建数据库并向数据库中写入一些记录。
我的代码如下(主要是从网上抄的),不知为何没能成功创建数据库,后面的写记录就更不知道如何实现了。
DB_ENV *dbenv; db_env_create(&dbenv, 0);
/* 在环境打开之前,可调用形式为dbenv->set_XXX()的若干函数设置环境 */
/* 通知DB使用Rijndael加密算法(参考资料4)对数据进行处理 */
dbenv->set_encrypt(dbenv, "encrypt_string", DB_ENCRYPT_AES);
/* 设置DB的缓存为5M */
dbenv->set_cachesize(dbenv, 0, 5 * 1024 * 1024, 0);
/* 设置DB查找数据库文件的目录 */
dbenv->set_data_dir(dbenv, "E:\\lesson\\ExamDB\\Release");
/* 打开数据库环境,注意后四个标志分别指示DB启动日志、加锁、缓存、事务处理子系统 */
dbenv->open(dbenv,"E:\\lesson\\ExamDB\\Release",DB_CREATE|DB_INIT_LOG|DB_INIT_LOCK| DB_INIT_MPOOL|DB_INIT_TXN, 0);
/* 在环境打开后,则可以打开若干个数据库,所有数据库的处理都在环境的控制和保护中。注意db_create函数的第二个参数是环境变量*/
DB *dbp1,*dbp2;
db_create(&dbp1, dbenv, 0);
dbp1->open(dbp1, NULL, "111.db", NULL, DB_BTREE, DB_AUTO_COMMIT | DB_CREATE | DB_THREAD, 0644);
db_create(&dbp2, dbenv, 0);
dbp2->open(dbp2, NULL, "222.db", NULL, DB_BTREE, DB_AUTO_COMMIT | DB_CREATE | DB_THREAD, 0644);

/*写记录的代码如何写,对Berkeley_DB十分陌生*/ /* 最后首先关闭打开的数据库,再关闭环境 */
dbp2->close(dbp2, 0);
dbp1->close(dbp1, 0);
dbenv->close(dbenv, 0);
...全文
203 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
loong460 2013-08-20
  • 打赏
  • 举报
回复
"E:\lesson\ExamDB\Release":No such file or directory
hitsunyboy 2011-10-25
  • 打赏
  • 举报
回复
初学者飘过
lcy_888 2011-10-25
  • 打赏
  • 举报
回复
另外,在Berkeley_DB中如果要写入多个字段是不是只有用结构体的办法。

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧