青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 3  文章 - 2  trackbacks - 0
<2025年11月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
30123456

常用鏈接

留言簿(1)

隨筆分類

隨筆檔案

文章分類

文章檔案

相冊(cè)

ACE資料

搜索

  •  

最新評(píng)論

閱讀排行榜

評(píng)論排行榜

在下載安裝這個(gè)數(shù)據(jù)庫(kù)之后,來(lái)使用這樣的數(shù)據(jù)庫(kù)做一個(gè)例子。
1.創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)

#include? < db_cxx.h >
#include?
< iostream >
#include?
< string >

using ? namespace ?std;
int ?main( int ?, char ? * [])
{
????
try
????
{
????????Db?db(NULL,NULL);
????????
//
????????
// ?d:\\MyTest.db????數(shù)據(jù)文件目錄
????????
// ?DB_BTREE????????????使用的文件保存的結(jié)構(gòu)
????????
// ?DB_CREATE????????創(chuàng)建方式的打開
????????
// ?NULL????????????????在windows里不使用此結(jié)構(gòu)
????????
//
???????? if ?( 0 ? == ?db.open(NULL, " d:\\MyTest.db " , " MyFirstDB " ,DB_BTREE,DB_CREATE,NULL))
????????
{
????????????cout
<< " 創(chuàng)建數(shù)據(jù)庫(kù)文件! " << endl;
????????}

????}

????
catch ?(DbException? & e)
????
{
????????cout
<< " 創(chuàng)建數(shù)據(jù)庫(kù)失敗: " ;
????????cout
<< e.what() << endl;
????}

????
????
return ? 0 ;
}


2.向數(shù)據(jù)庫(kù)里保存一個(gè)記錄

#include? < iostream >
#include?
< db_cxx.h >
using ? namespace ?std;

typedef?unsigned?
int ?UINT32,? * PUINT32?;
typedef?unsigned?
char ?UINT8,? * PUINT8?;

#pragma?pack(push,?
1 )
typedef?
struct ?_SMyUser
{
????UINT32?userID;
????
char ?name[ 32 ];
}
SMyUser;
#pragma?pack(pop)

void ?main()
{
????
try
????
{
????????Db?db(NULL,NULL);
????????
if ?(db.open(NULL, " d:\\MyTest.db " , " MyFirstDB " ,DB_BTREE,DB_RDONLY,NULL)? == ? 0 )
????????
{
????????????SMyUser?resInst;
????????????memset(
& resInst, 0 , sizeof (SMyUser));
????????????resInst.userID
= 1 ;

????????????Dbt?dbKey(
& (resInst.userID), sizeof (resInst.userID));
????????????Dbt?dbData;
????????????memset(
& dbData, 0 , sizeof (dbData));
????????????
// Dbt?dbData(&resInst,sizeof(resInst));
???????????? if ?( 0 == db. get (NULL, & dbKey, & dbData, 0 ))
????????????
{
????????????????cout
<< " 增加成功 " << endl;

????????????????SMyUser?
* pResInst = (SMyUser * )dbData.get_data();
????????????????cout
<< " 內(nèi)容: " << ( char * )pResInst -> name << endl;
????????????}

????????}

????}

????
catch ?(DbException? & e)
????
{
????????cout
<< " 失敗: " << e.what() << endl;
????}

????cout
<< " hello?the?world " << endl;
}


3.從數(shù)據(jù)庫(kù)里檢索出數(shù)據(jù)

#include? < iostream >
#include?
< db_cxx.h >
using ? namespace ?std;

typedef?unsigned?
int ?UINT32,? * PUINT32?;
typedef?unsigned?
char ?UINT8,? * PUINT8?;

#pragma?pack(push,?
1 )
typedef?
struct ?_SMyUser
{
????UINT32?userID;
????
char ?name[ 32 ];
}
SMyUser;
#pragma?pack(pop)

void ?main()
{
????
try
????
{
????????Db?db(NULL,NULL);
????????
if ?(db.open(NULL, " d:\\MyTest.db " , " MyFirstDB " ,DB_BTREE,DB_RDONLY,NULL)? == ? 0 )
????????
{
????????????SMyUser?resInst;
????????????memset(
& resInst, 0 , sizeof (SMyUser));
????????????resInst.userID
= 1 ;

????????????Dbt?dbKey(
& (resInst.userID), sizeof (resInst.userID));
????????????Dbt?dbData;
????????????memset(
& dbData, 0 , sizeof (dbData));
????????????
// Dbt?dbData(&resInst,sizeof(resInst));
???????????? if ?( 0 == db. get (NULL, & dbKey, & dbData, 0 ))
????????????
{
????????????????cout
<< " 增加成功 " << endl;

????????????????SMyUser?
* pResInst = (SMyUser * )dbData.get_data();
????????????????cout
<< " 內(nèi)容: " << ( char * )pResInst -> name << endl;
????????????}

????????}

????}

????
catch ?(DbException? & e)
????
{
????????cout
<< " 失敗: " << e.what() << endl;
????}

????cout
<< " hello?the?world " << endl;
}

4.刪除一條記錄

#include? < iostream >
#include?
< db_cxx.h >

using ? namespace ?std;

typedef?unsigned?
int ?UINT32,? * PUINT32?;
typedef?unsigned?
char ?UINT8,? * PUINT8?;

#pragma?pack(push,?
1 )
typedef?
struct ?_SMyUser
{
????UINT32?userID;
????
char ?name[ 32 ];
}
SMyUser;
#pragma?pack(pop)

int ?main()
{
????
try
????
{
????????Db?db(NULL,NULL);
????????
if ?(db.open(NULL, " d:\\MyTest.db " , " MyFirstDB " ,DB_BTREE,NULL,NULL)? == ? 0 )
????????
{
????????????SMyUser?resInst;
????????????memset(
& resInst, 0 , sizeof (SMyUser));
????????????resInst.userID
= 1 ;

????????????Dbt?dbKey(
& (resInst.userID), sizeof (resInst.userID));
????????????
????????????
if ?( 0 == db.del(NULL, & dbKey, 0 ))
????????????
{
????????????????cout
<< " 增加成功 " << endl;
????????????}

????????}

????}

????
catch ?(DbException? & e)
????
{
????????cout
<< " 失敗: " << e.what() << endl;
????}

????
return ? 0 ;
}

這一些東西都是一些基本的操作。主要是想說(shuō)明這個(gè)Berkeley DB是很強(qiáng)調(diào)一個(gè)這樣的概念:key與Data。他們都是一個(gè)很原始buffer塊。基于這一個(gè)數(shù)據(jù)庫(kù)的基礎(chǔ),我們可自己做一些工作,其實(shí)有一些像自己去實(shí)現(xiàn)一數(shù)據(jù)庫(kù)出來(lái)。這個(gè)上面的MyFirstDB這個(gè)東東,感覺(jué)上真的是像一個(gè)表。



[Sword.Hell]

posted on 2006-12-14 11:14 Sword.Hell blog 閱讀(1612) 評(píng)論(1)  編輯 收藏 引用 所屬分類: 使用Berkeley DB

FeedBack:
# re: Berkeley DB的基本使用 2013-08-22 16:10 lf460
2.向數(shù)據(jù)庫(kù)里保存一個(gè)記錄,應(yīng)該用pug()吧?  回復(fù)  更多評(píng)論
  

只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
      <noscript id="pjuwb"></noscript>
            <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
              <dd id="pjuwb"></dd>
              <abbr id="pjuwb"></abbr>
              欧美一级一区| 亚洲大片免费看| 欧美日韩性视频在线| 久久久久久一区| 校园激情久久| 久久国产精品毛片| 久久久久久久尹人综合网亚洲| 欧美一级视频| 美日韩在线观看| 欧美成年人视频网站| 免费成人毛片| 欧美日本一区| 国产精品国产| 欧美亚洲成人网| 国产色综合久久| 国产在线视频欧美一区二区三区| 国产欧美在线| 亚洲国产老妈| 亚洲一区三区在线观看| 久久精品国语| 亚洲美女少妇无套啪啪呻吟| 亚洲欧美日韩在线播放| 亚洲欧洲中文日韩久久av乱码| 夜夜爽av福利精品导航| 午夜在线成人av| 欧美精品久久久久久久久老牛影院| 国产麻豆9l精品三级站| 亚洲日韩中文字幕在线播放| 性色一区二区| 欧美成人免费大片| 亚洲欧美成人网| 久久综合色婷婷| 国产精品久久午夜| 激情久久影院| 亚洲综合视频一区| 欧美电影打屁股sp| 亚洲色在线视频| 久久一区国产| 韩国成人理伦片免费播放| 亚洲午夜国产一区99re久久| 欧美大片18| 亚洲一区视频| 欧美激情一二区| 在线看国产日韩| 午夜精品亚洲| 一区二区三区成人精品| 欧美精品性视频| 亚洲日本欧美日韩高观看| 欧美涩涩网站| 最新日韩精品| 亚洲电影观看| 久久中文在线| 极品中文字幕一区| 老司机一区二区三区| 亚洲欧美电影在线观看| 欧美日本一道本在线视频| 99精品久久久| 日韩亚洲一区在线播放| 欧美激情在线| 日韩亚洲视频在线| 亚洲二区免费| 欧美日韩精品三区| 亚洲视频播放| 亚洲一区二区三区精品在线| 欧美体内she精视频在线观看| 91久久精品美女| 91久久精品国产91久久性色tv| 欧美成人精品h版在线观看| 亚洲黄一区二区| 欧美成年网站| 欧美大片在线看免费观看| 亚洲激情视频网| 欧美激情在线狂野欧美精品| 欧美高清视频www夜色资源网| 亚洲国产免费| 亚洲福利专区| 欧美日韩国产色站一区二区三区| 99视频有精品| 一区二区三区高清在线观看| 国产精品jvid在线观看蜜臀| 亚洲网在线观看| 亚洲欧美日韩精品一区二区| 国产在线观看91精品一区| 欧美激情精品久久久久久变态| 乱人伦精品视频在线观看| av不卡在线| 亚洲欧美视频一区| 在线精品亚洲| 99精品视频免费观看| 国产日韩欧美自拍| 农村妇女精品| 欧美日韩国产小视频| 香蕉久久a毛片| 久久色中文字幕| 亚洲精品久久久久久久久久久久久| 最近看过的日韩成人| 国产精品毛片在线| 免费观看欧美在线视频的网站| 欧美成年视频| 亚洲欧美日韩精品久久奇米色影视 | 免费亚洲一区| 国产精品h在线观看| 美女脱光内衣内裤视频久久影院 | 91久久国产综合久久蜜月精品| 亚洲精品一区二区三区樱花| 国产伦精品一区二区三| 欧美激情视频一区二区三区在线播放| 国产精品成人免费| 欧美韩日亚洲| 黄色成人免费观看| 亚洲综合久久久久| 亚洲每日更新| 久热精品视频在线| 久久九九精品99国产精品| 欧美色欧美亚洲另类二区| 女主播福利一区| 国产亚洲一区二区三区在线观看| aa亚洲婷婷| 一本一本久久a久久精品牛牛影视| 久久久www成人免费无遮挡大片 | 亚洲精品影院| 好吊日精品视频| 欧美一级夜夜爽| 亚洲自拍偷拍网址| 欧美久久99| 亚洲黄色大片| 亚洲国产高清aⅴ视频| 久久精品中文字幕一区| 久久av一区| 国产欧美日韩麻豆91| 一区二区三区视频观看| 国产精品99久久久久久宅男| 欧美精品 国产精品| 欧美国产视频一区二区| 国内精品视频在线观看| 午夜久久美女| 久久爱www| 国产亚洲高清视频| 欧美一二三视频| 久久一区二区三区av| 国产亚洲精品高潮| 久久精品国产99国产精品| 久久久99精品免费观看不卡| 国产一区二区中文| 久久久久久久网站| 欧美激情一区二区三区在线| 在线欧美三区| 欧美二区在线观看| 亚洲人成网站在线播| 日韩视频免费在线观看| 欧美日韩亚洲一区二| 中文成人激情娱乐网| 欧美一区二区三区在线看| 国内精品一区二区三区| 巨乳诱惑日韩免费av| 欧美成人免费大片| 亚洲精品资源美女情侣酒店| 欧美精品一区二区三区蜜臀| 一本色道久久综合亚洲精品高清 | 亚洲免费视频一区二区| 国产日本亚洲高清| 久久国产精品99精品国产| 欧美大尺度在线观看| 亚洲最新在线| 亚洲性人人天天夜夜摸| 欧美亚洲一区二区三区| 国产日韩欧美综合在线| 久久精品国产99| 亚洲国产欧美一区| 亚洲视频精选| 国产日韩欧美中文| 欧美丰满少妇xxxbbb| 亚洲一区二区三区高清不卡| 免播放器亚洲| 在线视频日韩| 国产视频观看一区| 美日韩精品视频| 亚洲自拍偷拍网址| 欧美1区视频| 亚洲影院高清在线| 亚洲国产高清aⅴ视频| 欧美日韩亚洲一区三区| 欧美在线你懂的| 99精品国产一区二区青青牛奶| 欧美一级久久久| 日韩视频一区二区三区| 国产中文一区| 国产精品久久久久久久久久尿 | 国内视频一区| 国产精品第2页| 免费久久精品视频| 香蕉视频成人在线观看| 日韩一区二区精品视频| 麻豆精品91| 欧美一区二区三区四区高清| 日韩网站在线观看| 亚洲电影视频在线| 国产亚洲人成网站在线观看| 欧美精品一区二区三区视频| 美女日韩在线中文字幕|