- 浏览: 726792 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (1081)
- [网站分类]1.首页原创精华.NET区(包含架构设计、设计模式)(对首页文章的要求:原创、高质量、经过认真思考并精心写作) (0)
- [网站分类]2..NET新手区(用于发表不合适发表在首页的.NET技术文章,包括小经验、小技巧) (1)
- [网站分类]3.非技术区(技术之外的文章,但不要涉及任何政治内容) (0)
- [网站分类]4.其他技术区 (0)
- [网站分类]5.企业信息化 (0)
- [网站分类]6.读书心得区(技术书籍阅读心得、书籍推荐) (0)
- [网站分类]7.提问区(.NET技术方面的提问) (2)
- [网站分类]8.技术转载区(.NET技术文章转载, 请注明原文出处) (0)
- [网站分类]9.求职招聘区(个人求职、企业招聘) (0)
- [网站分类]Dottext区 (0)
- [网站分类]GIS技术 (0)
- [网站分类]IT英才专区(IT职场交流) (0)
- [网站分类]SharePoint (0)
- [网站分类]博客园.NET俱乐部(俱乐部组织与活动方面的文章) (0)
- [网站分类]软件发布区(发布自己开发的代码、软件) (0)
- [网站分类]网站管理区(网站管理方面的疑问、建议、意见, 寻求管理员帮助) (0)
- [网站分类]业界新闻 (1)
- 技术 (1)
- [随笔分类]生活感悟 (10)
- [随笔分类]C# (30)
- [随笔分类]AjaxPro教程 (3)
- [发布至博客园首页] (5)
- [随笔分类]简历 (0)
- [随笔分类]Linux (2)
- [随笔分类]技术聚会 (2)
- [随笔分类]ORM (1)
- [随笔分类]php (1)
- [随笔分类]创业 (1)
- [随笔分类]奇技淫巧 (1)
- [随笔分类]计划 (1)
- [随笔分类]架构&分层 (1)
- [随笔分类]整合行销 (1)
- [随笔分类]mac (1)
- [网站分类].NET新手区 (45)
- [网站分类]非技术区 (5)
- [网站分类]招聘区 (0)
- [随笔分类]单元测试 (1)
- [网站分类]其他技术区 (3)
- [网站分类]代码与软件发布 (6)
- [网站分类]提问区 (24)
- [随笔分类]ASP.NET (2)
- [随笔分类]FAQ (12)
- [随笔分类]开发人员工具 (1)
- [随笔分类]朗志轻量级项目管理解决方案 (1)
- [网站分类]读书区 (1)
最新评论
-
天使建站:
写和乱七八糟的 不知道从哪复制过来的 还是看这里吧j ...
jquery数组 -
hyn450:
你好,我最近也想了解一下竞争情报。不知道能不能交流一下呢 ?
最近的工作 -
lattimore:
这个连接打不开了阿!
使用vnc连ubuntu desktop -
MZhangShao:
奉劝你一句,以后在Ubuntu 用apt-get安装成功的软件 ...
关于xrdp的安装设置 -
f002489:
strftime
python下datetime类型的转换
Code
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using BerkeleyDb;
namespace BerkeleyDBDemo
{
public class Class4
{
static void Main(string[] args)
{
using (Db db = new Db(DbCreateFlags.None))
{
db.RecLen = 5000;
db.RecPad = '.';
DbQueue file = (DbQueue)db.Open(null, @"task.aaa", null, DbType.Queue, Db.OpenFlags.Create, 0);
using(Db db2=new Db(DbCreateFlags.None))
{
db2.SetFlags(DbFlags.Dup|DbFlags.DupSort);
DbFile secondfile = db2.Open(null, @"task.bbb", null, DbType.BTree, Db.OpenFlags.Create, 0);
file.Associate(secondfile,
delegate(DbFile _secondary, ref DbEntry _key, ref DbEntry _data, out DbEntry _k)
{
//_secondary二级库
//_key一级库
//_data一级库
//_result被创造的二级库key值
MemoryStream _stream = new MemoryStream();
BinaryFormatter _bf=new BinaryFormatter();
_stream.Write(_data.Buffer, 0, _data.Size);
_stream.Seek(0, SeekOrigin.Begin);
Task task2 = (Task)_bf.Deserialize(_stream);
_stream.Close();
_k = DbEntry.InOut(Encoding.UTF8.GetBytes(task2.Author));
//_secondary.Put(null, ref _k, ref _key);
//_secondary.Sync();
return DbFile.KeyGenStatus.Success;
}, DbFile.AssociateFlags.Create);
////创建一个任务的一条数据
Task task = new Task()
{
Id = Guid.NewGuid().ToString(),
Author = "lexus",
CreatedDate = DateTime.Now
};
AddData(file, task);
AddData(file, task);
AddData(file, task);
task.Author = "bbb";
AddData(file, task);
task.Author = "ccc";
AddData(file, task);
file.Sync();
}
Console.WriteLine("finished");
}
Console.ReadLine();
}
private static void AddData(DbQueue file, Task task)
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
bf.Serialize(stream, task);
DbEntry key = DbEntry.Out(new byte[1024]);
DbEntry data = DbEntry.InOut(stream.ToArray());
stream.Close();
file.Append(null, ref key, ref data);
}
}
}
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.Serialization.Formatters.Binary;
using System.Text;
using BerkeleyDb;
namespace BerkeleyDBDemo
{
public class Class4
{
static void Main(string[] args)
{
using (Db db = new Db(DbCreateFlags.None))
{
db.RecLen = 5000;
db.RecPad = '.';
DbQueue file = (DbQueue)db.Open(null, @"task.aaa", null, DbType.Queue, Db.OpenFlags.Create, 0);
using(Db db2=new Db(DbCreateFlags.None))
{
db2.SetFlags(DbFlags.Dup|DbFlags.DupSort);
DbFile secondfile = db2.Open(null, @"task.bbb", null, DbType.BTree, Db.OpenFlags.Create, 0);
file.Associate(secondfile,
delegate(DbFile _secondary, ref DbEntry _key, ref DbEntry _data, out DbEntry _k)
{
//_secondary二级库
//_key一级库
//_data一级库
//_result被创造的二级库key值
MemoryStream _stream = new MemoryStream();
BinaryFormatter _bf=new BinaryFormatter();
_stream.Write(_data.Buffer, 0, _data.Size);
_stream.Seek(0, SeekOrigin.Begin);
Task task2 = (Task)_bf.Deserialize(_stream);
_stream.Close();
_k = DbEntry.InOut(Encoding.UTF8.GetBytes(task2.Author));
//_secondary.Put(null, ref _k, ref _key);
//_secondary.Sync();
return DbFile.KeyGenStatus.Success;
}, DbFile.AssociateFlags.Create);
////创建一个任务的一条数据
Task task = new Task()
{
Id = Guid.NewGuid().ToString(),
Author = "lexus",
CreatedDate = DateTime.Now
};
AddData(file, task);
AddData(file, task);
AddData(file, task);
task.Author = "bbb";
AddData(file, task);
task.Author = "ccc";
AddData(file, task);
file.Sync();
}
Console.WriteLine("finished");
}
Console.ReadLine();
}
private static void AddData(DbQueue file, Task task)
{
BinaryFormatter bf = new BinaryFormatter();
MemoryStream stream = new MemoryStream();
bf.Serialize(stream, task);
DbEntry key = DbEntry.Out(new byte[1024]);
DbEntry data = DbEntry.InOut(stream.ToArray());
stream.Close();
file.Append(null, ref key, ref data);
}
}
}
由于bdb无法使用sql,因此关联数据库的运用将使你减轻负担,要理解关联数据库可以将它理解成关系数据库中一对多关系,一端指primary db,多端指secondary db,具体可以参看其doc
发表评论
-
关于分层架构中的业务实体层的使用一直不太清楚,可否指点一下?
2007-03-23 09:10 674我知道业务逻辑层又可细分为三个层次,分别是业务外观层业务规则层 ... -
xml反串行化
2007-07-02 17:23 7351using System; 2using Syste ... -
WriteXmlSchema(xsdFileName)和GetXmlSchema()输出的内容的差异
2007-07-04 19:00 884利用DataSet.ReadXml载入一个xml文件,再使用G ... -
对websharp中aspect的改进(待续)
2007-11-17 14:27 697缘起 为了在我的《朗志轻量级项目管理解决方案》项目中应用 ... -
WebSharp Aspect改进(续2)
2007-11-19 21:39 702接着上次在《朗志轻量级项目管理解决方案》中对Aspec ... -
TreeView(树形控件)中常用到的属性和事件
2007-11-19 22:22 12981.TreeView(树形控件) ... -
有没有适合的的面向对象的查询语言(Object Query Language)
2007-11-28 10:15 762在我做《朗志轻量级项目管理解决方案》的过程中,我希望 ... -
问题解答集
2007-11-29 18:11 4421 如何在源代码的目录下添加一个测试文件 ... -
FckEditor自定义按钮
2007-11-29 18:35 834目录 FckEditor自定义按钮 1 目录 ... -
GhstDoc2.1.1使用手册
2007-11-29 18:39 727目录 GhstDoc2.1.1使用手册 1 ... -
Log4net使用说明
2007-11-29 18:44 787Log4net使用说明 1 修改历史纪录 ... -
MySQLHelper类使用说明
2007-11-29 18:46 1317目录 MySQLHelper类使用说明 1 目录 ... -
NDoc1.3.1使用手册
2007-11-29 18:47 770目录 NDoc1.3.1使用手册 1 目录 ... -
程序中操作Word
2007-11-29 18:52 729目录 程序中操作Word 1 目录 2 ... -
利用SMTP服务发送电子邮件
2007-11-29 18:58 1355目录 利用SMTP服务发送电子邮件 1 目录 ... -
程序中操作Excel
2007-11-29 18:59 641目录 程序中操作Excel 1 目录 ... -
访问被拒绝:“AjaxPro”的解决方案
2007-11-29 19:01 546目录 访问被拒绝:&qu ... -
sqlserver的版本号
2008-02-27 21:01 823当你安装了sqlserver 2005之后你就可以使用sqls ... -
在安装有VS2008beta2版本的机子上使用vs2005进行部署出现问题的解决方法
2008-02-27 21:13 681我知道,2008rtm发布已经很久了,不巧的是同学在我的机子上 ... -
忙话codesmith
2008-07-28 15:01 871为什么不是闲话,因为我很忙,项目中新问题是接连不断,上一篇讲到 ...
相关推荐
- **Berkeley DB XML 支持**:Berkeley DB 支持使用 XQuery 进行数据查询和操作。 #### 5. Berkeley DB C++ 使用实例 - **5.1 初始化** - **环境准备**:配置开发环境,包括安装 Berkeley DB 库和开发工具。 - *...
Berkeley DB是一个嵌入式数据库,为应用程序提供可伸缩的、高性能的、有事务保护功能的数据管理服务。 主要特点: 嵌入式:直接链接到应用程序中,与应用程序运行于同样的地址空间中,因此,无论是在网络上不同...
3. **空间效率**:Berkeley DB通常关注内存和磁盘空间的使用效率,4.8版本可能进一步降低了存储开销,从而在资源有限的环境中更高效。 4. **错误处理和恢复**:为了提高系统的健壮性,4.8版本可能增强了错误检测和...
- **20.6 BerkeleyDB使用C++实例** - **更多示例**:提供更多的C++代码示例以加深理解。 - **20.7 BerkeleyDB中Btree、Queue、Recno记录编号的说明** - **数据结构解释**:详细解释Berkeley DB中使用的三种数据...
键和值通常作为参数传递,BerkeleyDB会自动根据散列函数确定数据在文件中的位置。 4. **关闭数据库**:完成数据入库后,应使用`Db::close()`方法关闭数据库连接,释放资源。 **读取速度测试** 测试BerkeleyDB的...
Berkeley DB的数据以文件形式存储,可以是普通磁盘文件或内存映射文件,这使得数据可以直接被应用程序访问,提高了性能。同时,BDB提供了事务处理机制,确保数据的一致性和完整性。 **3. 事务支持** BDB支持ACID...
在“数据库记录”章节,教程会进一步深入,向读者展示如何在Berkeley DB中使用数据库记录,包括读写操作、存入和获取记录、删除记录以及数据持久性的相关知识。此外,还会给出一些实际的例子,帮助读者更好地理解...
- **Berkeley DB**:强调进程内的数据操作,所有数据库相关的事务管理、数据加锁、存储管理等操作都由Berkeley DB函数库统一处理,对应用程序而言是完全透明的。这种设计使得Berkeley DB在多进程或多线程环境下表现...
《BerkeleyDB Manual C/C++》是一份详尽的官方文档,主要针对使用C和C++语言进行数据库操作的开发者。BerkeleyDB是一款轻量级、高性能的关系型数据库管理系统,常用于嵌入式系统和分布式应用程序。这篇手册将深入...
3. **BerkeleyDB-Core-C-GSG.pdf**:这是一本BerkeleyDB C的核心指南,适合初学者,通过实例介绍了如何构建和管理BerkeleyDB数据库,包括数据模型、数据库类型和查询方式等。 4. **BerkeleyDB-Java-Collections.pdf...
- 示例代码:展示如何使用Berkeley DB API进行数据操作。 - 文档:详细介绍了Berkeley DB的功能、用法、配置和最佳实践。 - 测试套件:用于验证数据库的正确性和性能。 对于开发人员来说,理解和掌握Berkeley DB...
1. 定义数据结构:在Berkeley DB中,你需要手动创建数据结构来表示SQL中的列,如`empid`、`last_name`等。 2. 创建数据库:使用DB创建函数,指定表名和任何必要的选项,如是否启用事务支持。 3. 插入数据:通过调用...
- **数据存储**:Berkeley DB提供高效的数据存储结构,如B树,使得Open LDAP可以快速查找、插入和更新数据。 - **数据一致性**:事务处理保证了即使在并发操作下,Open LDAP的数据也能保持一致。 - **可扩展性**:...
它支持多种编程语言,包括Java,这使得开发人员能够在Java应用程序中直接使用Berkeley DB进行数据管理。在本文中,我们将详细探讨如何在Java环境下使用Berkeley DB。 首先,我们需要了解Berkeley DB的一般操作流程...
### Berkeley DB 使用方法简介(C接口) #### 一、引言 Berkeley DB 是一个高性能、可嵌入式的键值数据库系统,它提供了一个非 SQL 的解决方案,特别适合那些需要高速内存操作的应用场景。Berkeley DB 支持多种...
- 在并发处理方面,Sqlite 使用行级锁定,而 BerkeleyDB 使用多版本并发控制,对于高并发环境,BerkeleyDB 可能表现更好。 总的来说,BerkeleyDB 和 Sqlite 都是优秀的嵌入式数据库解决方案,选择哪一个取决于具体...
- **键值对(Key-Value Pair)**:BerkeleyDB的基础数据模型,每个记录由一个唯一的键和对应的数据值组成。 - **数据库环境(Database Environment)**:管理和协调数据库的操作,包括内存池管理、事务处理和锁管理...
3. **使用BerkeleyDB**:Scrapy-Deltafetch会利用BerkeleyDB的API,将抓取到的URL和数据存储为键值对,便于后续判断新旧和更新内容。 通过以上内容,我们了解了BerkeleyDB的核心特性和安装过程,以及它在Scrapy-...