CEDB数据库的读取以及备份时候所要做的调整

       将cemail中的内容读取出来,然后备份以及还原的过程

提纲:
主要描述如何读取CEDB数据库,然后备份,还原!在wince程序设计这本书上有比较详细的介绍,而我只有英文电子

檔,看起来还是比较的吃力!
1.打开cedb数据库
2.Read数据库内容并存储
3.调整OID

Wince提供了简单的数据库系统,最多支持4种排序索引!能满足一些数据量不大的数据的组织管理,最常见的

用处就是Cemail.vol管理信息内容。CEDB数据库可以将数据库文件存储在卷中,而数据库卷实际上是文件,容

易被用户误删除。
标示一条数据的最基本数据是一个oid,数据与数据之间通过oid来建立配对的关系。
1.打开
装配数据库卷用到下面这个函数:
BOOL CeMountDBVol()
这个函数可以装配或者创建一个数据库卷,而我们在这里用OPEN_EXISTING将cemail.vol装备后得到guid,然后

进行下面的操作。同时我们需要CREATR_ALWAYS创建另外一个数据库卷来备份cemail.vol的内容!
用CeFindFirstDatabaseEx找到cemail.vol的文件handle后,就可以开始准备打开vol进行操作.
创建数据库卷的时候没有打开数据库卷,所以必须使用单独的函数CeOpenDatabaseEx来打开数据库卷.


2.read and store
打开vol之后就可以开始读取数据了,读取的同时在创建的新数据库里面创建一条数据,并将读出的数据存入新

的数据库当中
CeOidGetInfoEx返回一个结构体指针,这个结构体包含了每个数据对象的大量信息,以及其父oid,这个oid在

还原的时候起到很重要的作用。
在Create newdatabace 以及seekdatabase(同文件操作类似)后,开始读取数据到buffer并备份
函数分别为
CeReadRecordPropsEx
CeWriteRecordProps

3.调整oid
调整oid其实说起来是很简单的事,不过做起来比较繁杂,在cemail里面,一条信息的存储需要几个对象分别完成,

还原的时候介于用户的当前数据库已经存在诸多oid,故不能确保备份文件中的oid是否会与已有oid冲突,所以需

要采取先创建,然后修改数据对象的内容,使之与新的 oid对应起来

在调整前我们可以使用一个叫做dbview的工具来查看cedb数据库中oid的状态!以确定需要调整的部分。

cemail中包含了以下几个数据卷,数据之间用oid进行关联

fldr*****, pmailAttachs, pmailFolder , pmaileMsgs, pmailOldTables,pmailMsgClasses.pmailNamedProps

其中

pmailFolders包含了系统收件箱名称的信息,如mmsoutlook sms下面的各个folder名称

pmailMsg记录发件人的一些信息,这写信息同该发件人所发的内容(存储在fldr****中)通过oid对应起来

在遍历数据库的时候以上的部分都会读取到,可以很灵活的根据需要来调整oid

我会抽时间来详细描述以上的这些步骤,有朋友问我要代码,那就实在对不住了,我没有这个权力把代码放出.

 

 

 

 

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值