WM 操作cemail.vol

来源:互联网 发布:手机录像软件推荐 编辑:程序博客网 时间:2024/05/22 10:45

 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 new databace 以及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包含了系统收件箱名称的信息,如mms outlook sms下面的各个folder名称

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

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

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/leimiaomiao/archive/2007/07/05/1679635.aspx

原创粉丝点击