posts - 58,  comments - 75,  trackbacks - 0
Berkeley DB在Queue模式下的使用

Queue模式下仅能存储定长的记录,既value的长度为定长。Queue的key是一个逻辑增长的数,一般就是int。
不需要开发者去改变这个类型。

Queue模式下只能存储定长的记录。所以一定要调用DB的set_re_length函数来设定数据库中记录的长度。
如果没有设定,默认的为0。这样当存储记录时一定会报异常。程序出错。
在读取记录时,当记录的长度小于设定的长度时,会填充字符达到设定长度。
默认的字符为0x02(ASCII中的)。可以设定自己的填充字符。调用DB的set_re_pad。

一个简单的示例

#include < time.h >
#include < iostream >
#include < bdb/db_cxx.h >

struct ValueType
{
    int _int;
    char _char;
    char _array[256];
};

void writeDB( void )
{
    Db bdb( 0, 0 );

    bdb.set_re_len( sizeof( ValueType ) ); //用Queue模式一定要调用,而且一定要在open前调用
    bdb.set_re_pad( 0x00 ); //为了字符串的填充为0。

    bdb.open( 0, "SaveRecodeDB.db", 0, DB_QUEUE, DB_CREATE, 0 );

    size_t k;
    ValueType v;
    Dbt key( &k, sizeof( size_t ) );
    Dbt value( &v, sizeof( ValueType ) );

    //直接用数据库的写函数
    for( int i=0; i<1000000; ++i )
    {
        bdb.put( 0, &key, &value, DB_APPEND );
    }

    bdb.close( 0 );
}

int main( int argc, char* argv[] )
{
    clock_t et1 = clock();
    writeDB();
    clock_t et2 = clock();

    std::cout << "work is fine, " << "have times : " << et2 - et1 << std::endl;
    return 0;
}

在Queue模式下不能用游标进行数据的插入。只能进行数据的修改。
 
 
posted on 2007-05-29 18:03 walkspeed 阅读(1938) 评论(7)  编辑 收藏 引用 所属分类: C++语言Berkeley DB

FeedBack:
# re: Berkeley DB在Queue模式下的使用 1
2007-06-04 14:37 | 看图软件
分析细些就好了  回复  更多评论
  
# re: Berkeley DB在Queue模式下的使用 1
2007-12-26 09:03 | 89
<a href=" http://nuanhua.xinwen666.com ">无线扩音器 </a><br />
<a href=" http://www.nuanhua.com/dujiang.htm">http://www.nuanhua.com/dujiang.htm">http://www.nuanhua.com/dujiang.htm">http://www.nuanhua.com/dujiang.htm ">柜员对讲机 </a><br />
<a href=" http://www.nuanhua.com/dujiang.htm">http://www.nuanhua.com/dujiang.htm">http://www.nuanhua.com/dujiang.htm">http://www.nuanhua.com/dujiang.htm ">银行对讲机 </a><br />
<a href=" http://www.nuanhua.com/dujiang.htm">http://www.nuanhua.com/dujiang.htm">http://www.nuanhua.com/dujiang.htm">http://www.nuanhua.com/dujiang.htm ">窗口对讲机 </a><br />
<a href=" http://www.nuanhua.com/kuoyingqi.htm">http://www.nuanhua.com/kuoyingqi.htm">http://www.nuanhua.com/kuoyingqi.htm">http://www.nuanhua.com/kuoyingqi.htm ">喊话器 </a><br />
<a href=" http://www.nuanhua.com/kuoyingqi.htm">http://www.nuanhua.com/kuoyingqi.htm">http://www.nuanhua.com/kuoyingqi.htm">http://www.nuanhua.com/kuoyingqi.htm ">扩音器 </a><br />
<a href=" http://www.nuanhua.com/kuoyingqi.htm">http://www.nuanhua.com/kuoyingqi.htm">http://www.nuanhua.com/kuoyingqi.htm">http://www.nuanhua.com/kuoyingqi.htm ">无线扩音器 </a><br />
<a href=" http://www.nuanhua.com/quzhanglang.htm">http://www.nuanhua.com/quzhanglang.htm ">灭蟑器 </a><br />
<a href=" http://www.nuanhua.com/quzhanglang.htm">http://www.nuanhua.com/quzhanglang.htm ">驱蟑螂器 </a><br />
<a href=" http://www.nuanhua.com/qushuqi.htm ">驱鼠器 </a><br />
  回复  更多评论
  
# re: Berkeley DB在Queue模式下的使用 1
2008-05-21 11:00 | 除湿机
[url=http://www.csj001.com]除湿机[/url]

[url=http://www.csj001.com/cpzs.htm]工业除湿机[/url]
[url=http://www.csj001.com/lsjjscs.htm]冷水机[/url]
[url=http://www.csj001.com/lyxx.htm]工业除湿机[/url]
[url=http://www.csj001.com/shfw.htm]抽湿机[/url]
[url=http://www.csj001.com/lxwm.htm]去湿机[/url]

[url=http://www.lgj001.com">http://www.lgj001.com]冷干机[/url]

[url=http://www.lgj001.com">http://www.lgj001.com]冷冻式干燥机[/url]

[url=http://www.lsj001.com">http://www.lsj001.com]冷水机[/url]

[url=http://www.lsj001.com">http://www.lsj001.com]工业冷水机[/url]

[url=http://www.rxj001.com]除湿机[/url]

[url=http://www.hzxzbl.com]除湿机[/url]



<a href="http://www.csj001.com">除湿机</a>

<a href="http://www.csj001.com/cpzs.htm">工业除湿机</a>

<a href="http://www.csj001.com/lsjjscs.htm">冷水机</a>

<a href="http://www.csj001.com/lyxx.htm">工业除湿机</a>

<a href="http://www.csj001.com/shfw.htm">抽湿机</a>

<a href="http://www.csj001.com/lxwm.htm">去湿机</a>

<a href="http://www.lgj001.com">http://www.lgj001.com">冷干机</a>

<a href="http://www.lgj001.com">http://www.lgj001.com">冷冻式干燥机</a>

<a href="http://www.lsj001.com">http://www.lsj001.com">冷水机</a>

<a href="http://www.lsj001.com">http://www.lsj001.com">工业冷水机</a>

<a href="http://www.rxj001.com">除湿机</a>

<a href="http://www.hzxzbl.com">除湿机</a>
  回复  更多评论
  
# 北京翻译公司
2008-06-19 11:54 | fanyi
[url=http://www.tianyuanlongyang.cn ]翻译公司[/url]
[url=http://www.tianyuanlongyang.com ]翻译公司[/url]
[url=http://www.tianyuanlongyang.cn/service.htm ]技术翻译[/url]
[url=http://www.tianyuanlongyang.cn/about.htm ]翻译[/url]
[url=http://www.tianyuanlongyang.cn/ywlc.htm ]专业翻译公司[/url]
[url=http://www.tianyuanlongyang.cn/quote.htm ]口译公司[/url]
[url=http://www.tianyuanlongyang.cn/service.htm ]北京翻译公司[/url]
  回复  更多评论
  

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理



<2008年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用链接

留言簿(4)

随笔分类(64)

随笔档案(58)

文章分类(3)

文章档案(3)

相册

收藏夹(9)

C++零碎

好友

搜索

  •  

积分与排名

  • 积分 - 157878
  • 排名 - 163

最新评论

阅读排行榜

评论排行榜