CEDB資料庫的讀取以及備份時候所要做的調整

來源:互聯網
上載者:User

       將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

我會抽時間來詳細描述以上的這些步驟,有朋友問我要代碼,那就實在對不住了,我沒有這個權力把代碼放出.

 

 

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.