C++中使用Berkeley_DB的问题。
主要想先用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);