

<!----> 用戶:所有分組(QQ好友)
==================================================
消息組:.net( 12 )
==================================================
消息類型:聊天記錄
==================================================
--------------------------------------------------
消息對象:象( 4618415 )
--------------------------------------------------
2008 - 07 - 30 ? 00 : 23 : 42 ? 4618415
你的bdb?.net是怎么用的啊?
2008 - 07 - 30 ? 00 : 24 : 07 ? 4618415
是自己實現(xiàn)的還是使用? 0 .95那個?.net實現(xiàn) ? ?
2008 - 07 - 30 ? 03 : 55 : 46 ?[北京]Erick
我是用的0. 95 ?
2008 - 07 - 30 ? 05 : 41 : 02 ?象
我的也是,不過你發(fā)現(xiàn)了那個地方有個bug了嗎?
2008 - 07 - 30 ? 05 : 41 : 18 ?象
0 .95那個實現(xiàn)有些問題,?
2008 - 07 - 30 ? 06 : 12 : 12 ?[北京]Erick
似乎是Associate函數有問題,?
2008 - 07 - 30 ? 06 : 12 : 19 ?[北京]Erick
不知道你用過沒有?
2008 - 07 - 30 ? 06 : 12 : 26 ?象
我用過啊,不是那里的,?
2008 - 07 - 30 ? 06 : 12 : 40 ?象
我找了好久才找到?
2008 - 07 - 30 ? 06 : 12 : 45 ?象
你用這個干啥的啊?
2008 - 07 - 30 ? 06 : 12 : 55 ?[北京]Erick
做二級數據庫啊?
2008 - 07 - 30 ? 06 : 14 : 07 ?[北京]Erick
我剛遇到一個問題想向你請教一下,?
2008 - 07 - 30 ? 06 : 14 : 55 ?象
說說看看,你是不是還在讀書啊?
2008 - 07 - 30 ? 06 : 15 : 31 ?[北京]Erick
是啊?
2008 - 07 - 30 ? 06 : 16 : 24 ?[北京]Erick
我設置env用以提供并行的環(huán)境??????
?????? using ?(Env?env? = ? new ?Env(EnvCreateFlags.None))
????????????{
???????????????? // 設置并發(fā)參數Env.OpenFlags.InitCDB,Env.OpenFlags.InitMPool
????????????????Env.OpenFlags?envFlags? =
????????????????????Env.OpenFlags.InitCDB |
????????????????????Env.OpenFlags.InitMPool?;
????????????????env.Open( "" ,?envFlags,? 0 );
????????????????Txn?txn? = ?env.TxnBegin( null ,?Txn.BeginFlags.None);
???????????????? using ?(Db?db? = ?env.CreateDatabase(DbCreateFlags.None))
????????????????{
????????????????????db.RecLen? = ? 5000 ;
????????????????????db.RecPad? = ? ' . ' ;?
2008 - 07 - 30 ? 06 : 16 : 52 ?[北京]Erick
我對并發(fā)的參數設置不太了解,?
2008 - 07 - 30 ? 06 : 17 : 06 ?[北京]Erick
特別是這里的env.Open該如何使用?
2008 - 07 - 30 ? 06 : 19 : 08 ?象
public ? int ?Set_Write_Env( string ?path, int ?hash_code,? int ?cache_size)
????????{
????????????BDB_PATH? = ?path;
????????????HASH_CODE? = ?hash_code;
????????????env? = ? new ?Env(EnvCreateFlags.None);
????????????Env.OpenFlags?envFlags? =
?????????????????Env.OpenFlags.Create? |
??????????????????Env.OpenFlags.InitLock? |
??????????????????Env.OpenFlags.InitLog? |
??????????????????Env.OpenFlags.InitMPool? |
??????????????????Env.OpenFlags.ThreadSafe;
???????????? // 打開數據庫環(huán)境,注意后四個標志分別指示DB啟動日志、加鎖、緩存、事務處理子系統(tǒng)
???????????? try
????????????{
????????????????env.SetCacheMaxWrite(cache_size? * ? 1024 ? * ? 1024 ,? 0 );? // 設置緩沖
????????????}
???????????? catch ?(Exception?eb)
????????????
2008 - 07 - 30 ? 06 : 19 : 08 ?象
{
????????????????Console.WriteLine( " 設置環(huán)境錯誤:{0} " ,?eb.Message);
????????????????env.Close();
???????????????? return ? 0 ;
????????????}
????????????env.Open(BDB_PATH,?envFlags,? 0 );
???????????? return ? 0 ;
????????}
?
2008 - 07 - 30 ? 06 : 19 : 20 ?象
問你是不是還在上學啊?
2008 - 07 - 30 ? 06 : 19 : 24 ?[北京]Erick
是的?
2008 - 07 - 30 ? 06 : 20 : 11 ?象
你30多了還在上學啊,?
2008 - 07 - 30 ? 06 : 20 : 19 ?象
估計你是做畢業(yè)論文吧,?
2008 - 07 - 30 ? 06 : 20 : 19 ?[北京]Erick
沒啦, 25 ?
2008 - 07 - 30 ? 06 : 20 : 23 ?象
哦?
2008 - 07 - 30 ? 06 : 20 : 39 ?[北京]Erick
被你猜到了?
2008 - 07 - 30 ? 06 : 20 : 50 ?象
你最好vc下做成dll再調用,否則你會很難堪的?
2008 - 07 - 30 ? 06 : 20 : 49 ?[北京]Erick
是寫論文用?
2008 - 07 - 30 ? 06 : 21 : 13 ?象
這個0. 95 ?毛病太多,估計一般的水平和精力都該不出來,資料太少?
2008 - 07 - 30 ? 06 : 21 : 27 ?[北京]Erick
我不會C ++ ,原來想找人cli?c ++ 的wrapper,結果沒找到?
2008 - 07 - 30 ? 06 : 21 : 43 ?象
哈哈哈,你麻煩了?
2008 - 07 - 30 ? 06 : 22 : 09 ?[北京]Erick
你有這方面的資料提供下嗎?
2008 - 07 - 30 ? 06 : 22 : 20 ?象
c#下的bdb很少有人搞成功的,資料少的可憐,你看到網上那些demo,其實都是演示而已,根本無法應用,?
2008 - 07 - 30 ? 06 : 22 : 48 ?[北京]Erick
我現(xiàn)在搜,連代碼都找不到了,?
2008 - 07 - 30 ? 06 : 22 : 51 ?象
data的長度好像過了幾k就報內存錯誤了?
2008 - 07 - 30 ? 06 : 23 : 07 ?象
沒有資料,?
2008 - 07 - 30 ? 06 : 23 : 08 ?[北京]Erick
oracle的論壇我也去過了?
2008 - 07 - 30 ? 06 : 23 : 30 ?[北京]Erick
那你是怎么做的??
2008 - 07 - 30 ? 06 : 23 : 34 ?象
沒用的,都是c ++ 的應用,?
2008 - 07 - 30 ? 06 : 23 : 40 ?象
我是通過dll引入啊?
2008 - 07 - 30 ? 06 : 23 : 42 ?象
vc?
2008 - 07 - 30 ? 06 : 24 : 12 ?象
因為bdb?.net這方面我們做了很多處理,都是公司的東西,不能給你?
2008 - 07 - 30 ? 06 : 25 : 00 ?[北京]Erick
網上說是先調用C ++ 的接口再做wrapper?
2008 - 07 - 30 ? 06 : 25 : 20 ?象
那估計不行?
2008 - 07 - 30 ? 06 : 25 : 58 ?[北京]Erick
死的心都有了?
2008 - 07 - 30 ? 06 : 26 : 18 ?象
你得做成vc?dll,然后再引入,這樣就簡單多了,不過你還是研究生,估計實踐經驗不夠,這樣做知識面是要廣點,比較麻煩些?
2008 - 07 - 30 ? 06 : 26 : 19 ?[北京]Erick
你們用bdb做什么應用啊?
2008 - 07 - 30 ? 06 : 26 : 29 ?象
垂直搜索的索引庫?
2008 - 07 - 30 ? 06 : 26 : 40 ?[北京]Erick
不用lucene啊?
2008 - 07 - 30 ? 06 : 27 : 06 ?象
那東西太低級了,能商用嗎?
2008 - 07 - 30 ? 06 : 27 : 32 ?象
擴展性太差,不適合商用,哄哄老板還可以?
2008 - 07 - 30 ? 06 : 27 : 41 ?[北京]Erick
呵呵?
2008 - 07 - 30 ? 06 : 28 : 11 ?[北京]Erick
怎么辦啊,其它的嵌入式的數據庫我都找了一遍了,并發(fā)性都不行,你有什么好的建議?
2008 - 07 - 30 ? 06 : 30 : 39 ?象
只有bdb?
2008 - 07 - 30 ? 06 : 30 : 47 ?象
sqlite?速度快,并發(fā)不行?
2008 - 07 - 30 ? 06 : 31 : 02 ?[北京]Erick
我測了,10線程必死?
2008 - 07 - 30 ? 06 : 31 : 33 ?象
你們也是哄哄導師而已,隨便糊弄一下吧,dbd問題不大,只要數據每天不過2K,應該沒啥問題?
2008 - 07 - 30 ? 06 : 31 : 49 ?[北京]Erick
前面你給我的示例代碼中BDB_PATH這個參數是設置什么?
2008 - 07 - 30 ? 06 : 34 : 47 ?象
dbd文件啊,?
2008 - 07 - 30 ? 06 : 35 : 34 ?[北京]Erick
是bdb文件的絕對路徑嗎??
2008 - 07 - 30 ? 06 : 35 : 53 ?象
是啊,你還要問啊,大哥?
2008 - 07 - 30 ? 06 : 36 : 24 ?[北京]Erick
還不容易逮著一個懂的,不能放過啊,呵呵?
2008 - 07 - 30 ? 06 : 37 : 10 ?[北京]Erick
有沒有簡單的示例性的代碼提供學習一下,?
2008 - 07 - 30 ? 06 : 37 : 39 ?象
沒用的,?
2008 - 07 - 30 ? 06 : 37 : 50 ?象
必須修改dbd? 0.95 ?.net的源碼?
2008 - 07 - 30 ? 06 : 38 : 40 ?象
修改的地方不多,但是代碼不是我修改的,你要?修改后的,我可以給你,源碼,我拿不到,核心的東西我也沒有,?
2008 - 07 - 30 ? 06 : 38 : 53 ?[北京]Erick
行啊,?
2008 - 07 - 30 ? 06 : 38 : 59 ?[北京]Erick
我又不要源碼?
2008 - 07 - 30 ? 06 : 40 : 08 ?象
你試試吧,你說的那個函數我們并沒有用,也許我們改了別的地方,那個地方自然就通過了?
2008 - 07 - 30 ? 06 : 40 : 11 ?象
接收文件成功,保存于C:\Documents?and?Settings\Administrator\Desktop\libdb_dotNET45.dll。
2008 - 07 - 30 ? 06 : 40 : 27 ?象
? public ? void ?Write_Index( string ?key,IndexClass.index?index,? int ?table_id)
????????{
???????????? try
????????????{
???????????????? #region ?寫索引
???????????????? using ?(Db?db? = ?env.CreateDatabase(DbCreateFlags.None))
????????????????{
???????????????????? // 1:設置環(huán)境,打開數據文件
????????????????????db.SetFlags(DbFlags.Dup); // 容許hash重復
????????????????????DbFile?dbf;
???????????????????? try
????????????????????{
????????????????????????dbf? = ?db.Open( null ,?BDB_PATH? + ? " \\term " ? + ?table_id.ToString()? + ? " .db " ,? null ,?DbType.Hash,?Db.OpenFlags.Create,? 0 );
????????????????????}
???????????????????? catch ?(Exception?eb)
????????????????????{
????????????????????????Console.WriteLine( " 打開數據文件失
2008 - 07 - 30 ? 06 : 40 : 27 ?象
#endregion
????????????}
???????????? catch ?(Exception?e)
????????????{
????????????????Console.WriteLine( " 寫索引錯誤:{0} " ,?e.Message);
???????????????? return ;
????????????}
????????}?
2008 - 07 - 30 ? 06 : 40 : 25 ?[北京]Erick
嗯,?
2008 - 07 - 30 ? 06 : 40 : 27 ?象
敗.{ 0 } " ,?eb.Message);
???????????????????????? return ;
????????????????????}
????????????????????MemoryStream?stream? = ? new ?MemoryStream();
????????????????????BinaryFormatter?formatter? = ? new ?BinaryFormatter();
????????????????????stream? = ? new ?MemoryStream();
????????????????????formatter.Serialize(stream,?index);
????????????????????DbEntry?_key? = ?DbEntry.InOut(Encoding.UTF8.GetBytes(key));
????????????????????DbEntry?_data? = ?DbEntry.InOut(stream.ToArray());
???????????????????? if ?(dbf.Put( null ,? ref ?_key,? ref ?_data)? != ? 0 )
????????????????????????Console.Write( " {0}:輸入錯誤 " ,?key);
????????????????????dbf.Sync(); // 數據更新
????????????????????db.Close();
????????????????}
????????????????
2008 - 07 - 30 ? 06 : 41 : 41 ?象
???????? public ? int ?Search_Index( string ?Term,? int ?score,? ref ?List < Index_Term > ?index_terms)
????????{?
???????????? string ?key = "" ;
???????????? int ?c? = ? 0 ;
????????????IndexClass.index?p;
???????????? string ?filename? = ?BDB_PATH? + ? " \\term " ? + ?Get_Table(Term,?HASH_CODE).ToString()? + ? " .db " ;
???????????? if ?(System.IO.File.Exists(filename))
????????????{
????????????????DateTime?b? = ?DateTime.Now;
????????????????BinaryFormatter?formatter? = ? new ?BinaryFormatter();
????????????????MemoryStream?stream? = ? new ?MemoryStream();
????????????????Db?db? = ? new ?Db(DbCreateFlags.None);
????????????????db.SetFlags(DbFlags.Dup);
????????????????DbFile?dbf? = ?db.Open( null ,?filename,? null ,?DbType.Hash,?Db.OpenFlags.Read
2008 - 07 - 30 ? 06 : 41 : 41 ?象
Only,? 0 );
?????
更多文章、技術交流、商務合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
