青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Benjamin

靜以修身,儉以養德,非澹薄無以明志,非寧靜無以致遠。
隨筆 - 398, 文章 - 0, 評論 - 196, 引用 - 0
數據加載中……

EDB數據庫的操作

一、WM5以前的系統中一般都是使用的CEDB數據庫,EDB是WM5中的新特性之一。為了改善應用程序的性能和長期可移植性,CEDB 已經被 EDB 所取代。EDB 利用了 SQL Mobile 使用的存儲子系統,并且提供了明顯優于 CEDB 的性能(尤其是在與持久存儲區一起使用時)。因為 CEDB 提供了與 EDB 完全相同的函數集 ,所有函數都具有相同的名稱和參數列表。但是EDB中也包含了CEDB中所沒有函數,并且創建方法也不相同了,要比CEDB復雜。

二、EDB數據庫的創建和基本操作
1.創建數據庫卷:CeMountDBVol( );//創建卷
CeCreateDatabaseWithProps();//卷創建成功后創建EDB
CeCreateSession();//EDB創建成功后創建session,用于打開EDB
CeOpenDatabaseInSession();//打開EDB
創建EDB時前還要創建一個CEDBASEINFOEX對象,這個對象用于創建EDB中的info,用于設定EDB。
在打開時還要維護一個全局的HANDLE,在以后的操作中是要使用的.
2.對數據庫進行讀,寫,刪除的操作
CeSeekDatabaseEx();//定位所要找的數據
CeReadRecordPropsEx();//讀出定位的數據
創建一個CEPROPVAL對象,將所要定位數據的條件傳給這個結構。
CeWriteRecordProps();//數據寫入EDB
創建一個CEPROPVAL對象,或對象數組,將所要寫入的數據傳給這些對象。
CeSeekDatabaseEx();//定位要刪除的數據
CeDeleteRecord();//刪除定位的數據
CeWriteRecordProps();//數據寫入新數據到EDB覆蓋原數據
CloseHandle(打開時的句柄);
3.其他的一些數據庫操作函數

列舉數據庫: CeFindFirstDatabaseEx和CeFindNextDatabase

獲得數據庫的信息:CeOidGetInfoEx

//在EDB的消息函數中用到

釋放通告消息結構體:CeFreeNotification
將數據緩沖到flash上:CeFreeNotification
獲得打開的數據庫所使用的句柄:CeGetDBInformationByHandle

設置數據庫的各種參數:CeSetDatabaseInfoEx

列舉所有轉載的數據庫卷并返回卷名:CeEnumDBVolumes
三、以下是EDB代碼示例
 CEOID oid = NULL;
 CEGUID guidVol = {0,};
 BOOL fOK = true;
 HANDLE h = INVALID_HANDLE_VALUE;
 LPWSTR lpwszDBVol = L"volume.db";

 SORTORDERSPECEX s =
 {
  2, // wVersion should be 2 for EDB
  1, // wNumProps
  0, // wKeyFlags
  0, // wReserved
  0, //rgPropID,
  { 0 } //rgdwFlags
 };

 CEDBASEINFOEX info =
 {
  2, // wVersion must be 2 for EDB
  0, // wNumSortOrder
  (CEDB_VALIDNAME | CEDB_VALIDTYPE | CEDB_VALIDSORTSPEC), // dwFlags
  L"Table1", // szDbaseName
  0x777, // dwDbaseType
  4,/*NULL, // dwNumRecords*/
  NULL, // dwSize (Not used by EDB)
  {0,}, //ftLastModified (Not used by EDB)
 };

 CEPROPVAL val =
 {
  0,    // propid
  NULL, // wLenData - can be garbage on entry
  NULL, // wFlags
  0 
 };

 s.rgPropID[0] = CEVT_LPWSTR;
 val.propid = CEVT_LPWSTR;


 CEPROPSPEC CEPropSpec[4];
 CEPropSpec[0].wVersion = 1;
 CEPropSpec[0].propid = CEVT_LPWSTR;
 CEPropSpec[0].dwFlags = 0;
 CEPropSpec[0].pwszPropName = TEXT("Name");
 CEPropSpec[0].cchPropName = CEDB_MAXDBASENAMELEN;


 // The Following .
 CEPropSpec[1].wVersion = 1;
 CEPropSpec[1].propid = CEVT_LPWSTR;
 CEPropSpec[1].dwFlags = 0;
 CEPropSpec[1].pwszPropName = TEXT("Phone");
 CEPropSpec[1].cchPropName = CEDB_MAXDBASENAMELEN;

 // The Following .
 CEPropSpec[2].wVersion = 1;
 CEPropSpec[2].propid = CEVT_LPWSTR;
 CEPropSpec[2].dwFlags = 0;//0;
 CEPropSpec[2].pwszPropName = TEXT("Content");
 CEPropSpec[2].cchPropName = CEDB_MAXDBASENAMELEN;

 // The Following .
 CEPropSpec[3].wVersion = 1;
 CEPropSpec[3].propid = CEVT_LPWSTR;
 CEPropSpec[3].dwFlags = 0;//0;
 CEPropSpec[3].pwszPropName = TEXT("Isread");
 CEPropSpec[3].cchPropName = CEDB_MAXDBASENAMELEN;

 if (!CeMountDBVolEx(&guidVol, lpwszDBVol, NULL, CREATE_ALWAYS))
 {
  fOK = false;
  goto exit;
 }

 if ((oid = CeCreateDatabaseWithProps(&guidVol, &info, 0, CEPropSpec)) == NULL)
 {
  fOK = false;
  goto exit;
 }


 if ((h = CeOpenDatabaseInSession(NULL, &guidVol, &oid, NULL, NULL,
  0, NULL)) == INVALID_HANDLE_VALUE)
 {
  fOK = false;
  goto exit;
 }

 CEPROPVAL pProp[4];
 pProp[0].propid = PID_NAME;
 pProp[0].wFlags = 0;
 pProp[0].wLenData = 0;
 pProp[0].val.lpwstr = L"777rewr";

 pProp[1].propid = PID_PHONE;
 pProp[1].wFlags = 0;
 pProp[1].wLenData = 0;
 pProp[1].val.lpwstr = L"888rer";

 pProp[2].propid = PID_CONTENT;
 pProp[2].wFlags = 0;
 pProp[2].wLenData = 0;
 pProp[2].val.lpwstr = L"123rewr";

 pProp[3].propid = PID_ISREADED;
 pProp[3].wFlags = 0;
 pProp[3].wLenData = 0;
 pProp[3].val.lpwstr = L"234rewr";

 //Write records.
 for(int i = 0; i < 100; ++i)
  oid = CeWriteRecordProps(h, 0, 4, pProp);

 //Add records.
 CeWriteRecordProps(h, 0, 4, pProp);

 

 CeFlushDBVol(&guidVol); // Just being paranoid!
 CloseHandle(h);


exit:

 CeUnmountDBVol(&guidVol);

查找及刪除操作示例:
bool fOK = true;
 CEOID oid = NULL;
 CEOID oidRow = NULL;
 CEGUID guidVol;
 HANDLE h = INVALID_HANDLE_VALUE;
 HANDLE    hDBOpened = NULL;

 CREATE_INVALIDGUID(&guidVol);

 if (!CeMountDBVolEx(&guidVol, L"volume.db", NULL, OPEN_EXISTING))
 {
  fOK = false;
  MessageBox(L"Err!!!");
 }

 
 // Open Database by Name to get its oid.
 if ((h = CeOpenDatabaseInSession(NULL, &guidVol, &oid, L"Table1", NULL,
  CEDB_AUTOINCREMENT, NULL)) == INVALID_HANDLE_VALUE)
 {
  fOK = false;
  MessageBox(L"Err!!!");
 }

 CEOIDINFOEX ceoidInfoEx;
 memset(&ceoidInfoEx,0,sizeof(CEOIDINFOEX));
 ceoidInfoEx.wVersion = 2;

//  if (!CeOidGetInfoEx2(&guidVol, oid, &ceoidInfoEx))
//  {
//   DWORD err = GetLastError();
//   MessageBox(_T("CeOidGetInfoEx2  error!!!"));
//  } 
//  
//  int Leng = ceoidInfoEx.infDatabase.dwNumRecords;
//  CString cs;
//  cs.Format(L"%d",Leng);
//  MessageBox(cs);

 CeSeekDatabaseEx(h, CEDB_SEEK_BEGINNING, 0, 0, NULL);

 WORD          dwPropId = 0;
 DWORD         dwSizeOfBuffer = 0;
 CEOID         ceoidFindRecord = 0;
 WORD          wNumRecProps = 0;
 LPBYTE        lpRecProps = NULL;
 PCEPROPVAL    pCePropVal = NULL;
 DWORD         dwBufLen = 256;
 BOOL m_bFlag = FALSE;
 
 int m_iCount = 0;
 while(ceoidFindRecord = CeReadRecordPropsEx(h, CEDB_ALLOWREALLOC, &dwPropId, NULL, &lpRecProps, &dwSizeOfBuffer, NULL))
 {
  if(GetLastError() != ERROR_NO_MORE_ITEMS)
  {
   pCePropVal = (PCEPROPVAL)lpRecProps;
   LPWSTR lpnum;
   if (m_iCount%2)
    lpnum = pCePropVal[3].val.lpwstr;
   else
    lpnum = pCePropVal[1].val.lpwstr;


  TRACE(L"%d=%s\n",m_iCount,lpnum);
 
   ++m_iCount;
   if(!lpnum )
   {
    CeDeleteRecord(h, ceoidFindRecord);
    m_bFlag = FALSE;
   }
   else
    m_bFlag = TRUE;
  } 
 }
 CString str;
 str.Format(L"%d",m_iCount);
 MessageBox(str);

 if (h)
  CloseHandle(h);

 if(&guidVol)
 {
  CeFlushDBVol(&guidVol);
  CeUnmountDBVol(&guidVol);
 }

頭文件:extern "C"
{
#include <windbase_edb.h>
}

#define EDB

 

posted on 2008-08-11 13:20 Benjamin 閱讀(3283) 評論(0)  編輯 收藏 引用 所屬分類: PDA/PPC開發

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美电影在线| 欧美承认网站| 欧美理论在线播放| 99在线精品视频| 久久精品日韩一区二区三区| 久久漫画官网| 国产精品久久久久毛片软件 | 一区二区三区**美女毛片| 欧美成人精品三级在线观看| 亚洲一区www| 老司机成人在线视频| 亚洲国产专区校园欧美| 亚洲成人直播| 伊大人香蕉综合8在线视| 国产精品日韩在线播放| 亚洲欧美日韩成人高清在线一区| 免费不卡视频| 老牛影视一区二区三区| 国产精品久久久久高潮| 久久午夜国产精品| 亚洲婷婷在线| 午夜久久资源| 国产一区二区在线观看免费播放 | 男女激情久久| 久久免费视频网| 中文一区在线| 久久久久久久国产| 亚洲国产成人tv| 裸体一区二区三区| 日韩亚洲欧美成人一区| 午夜视频一区在线观看| 乱码第一页成人| 久久久久天天天天| 欧美日韩一区二区三区在线观看免| 国产一区二区激情| 久久综合一区二区三区| 久久久国产精品一区二区中文 | 模特精品在线| 国产精品久久久久一区二区三区共 | 亚洲黄色一区| 久久精品国产2020观看福利| 国产精品第一页第二页第三页| 久久久久久久久伊人| 99re66热这里只有精品3直播 | 午夜精品久久久久久久99黑人| 一区二区91| 亚洲精品一区二区三区婷婷月| 免费观看一区| 国产精品v日韩精品| 国产精品久久久久9999高清| 欧美三级韩国三级日本三斤| 国产精品久久久久aaaa九色| 这里是久久伊人| 亚洲精品视频一区| 欧美日韩喷水| 欧美三级欧美一级| 欧美日本在线观看| 黄色国产精品一区二区三区| 日韩视频在线一区二区| 欧美韩日精品| 国产麻豆精品视频| 黑人操亚洲美女惩罚| 一区二区三欧美| 久久精品91久久久久久再现| 亚洲人被黑人高潮完整版| 亚洲精品少妇30p| 麻豆乱码国产一区二区三区| 久久久久久久成人| 欧美成人精品高清在线播放| 亚洲精品国产拍免费91在线| 亚洲第一精品夜夜躁人人爽| 久久久另类综合| 免费一级欧美片在线播放| 欧美高清你懂得| 99综合在线| 欧美视频在线一区二区三区| 欧美一区二区在线播放| 99pao成人国产永久免费视频| 久久视频这里只有精品| 欧美日韩中文字幕在线| 久久不射中文字幕| 欧美高清一区二区| 国产一区二区欧美| 亚洲高清电影| 国产欧美一二三区| 日韩视频免费| 免费日韩一区二区| 日韩视频中午一区| 欧美日韩另类字幕中文| 欧美激情影音先锋| 亚洲国产高清在线| 亚洲国产一区二区精品专区| 美国三级日本三级久久99| 91久久综合| 欧美伊人久久久久久久久影院| 国产欧美韩国高清| 男人的天堂亚洲| 国产精品久久一卡二卡| 亚洲精品韩国| 欧美日韩色婷婷| 亚洲人成毛片在线播放女女| 一区二区久久| 国产人成精品一区二区三| 久久人人精品| 国产日韩av一区二区| 欧美在线一二三区| 久久久久欧美| 国产一区二区三区在线观看视频| 91久久久一线二线三线品牌| 欧美一二三视频| 怡红院av一区二区三区| 另类av一区二区| 欧美激情aⅴ一区二区三区| 久久综合给合久久狠狠色| 亚洲色图制服丝袜| 亚洲一级在线观看| 欧美交受高潮1| 久久久夜色精品亚洲| 国产精品亚洲综合久久| 亚洲欧美日韩精品久久亚洲区| 欧美大学生性色视频| 欧美一区二区高清在线观看| 国内一区二区三区| 亚洲国产日韩欧美在线99| 午夜亚洲性色福利视频| 老鸭窝毛片一区二区三区| 国产日韩欧美高清免费| 在线 亚洲欧美在线综合一区| 久久久欧美一区二区| 亚洲亚洲精品在线观看| 亚洲综合电影| 久久免费偷拍视频| 欧美一级夜夜爽| 亚洲成人在线视频播放 | 亚洲国产精品欧美一二99| 欧美成人精品三级在线观看| 欧美激情一区二区三区成人 | 亚洲日本中文| 亚洲午夜一区二区| 中文亚洲免费| 韩国女主播一区| 国产精品免费视频xxxx| 久久精品成人一区二区三区蜜臀| 亚洲欧美伊人| 中日韩在线视频| 亚洲电影免费观看高清完整版| 欧美日韩在线观看一区二区| 亚洲综合成人婷婷小说| 欧美在线看片a免费观看| 欧美性做爰毛片| 91久久视频| 久久久久九九视频| 亚洲女爱视频在线| 久久久不卡网国产精品一区| 欧美一区二区三区婷婷月色| 亚洲电影免费观看高清完整版在线| 欧美成年人网站| 国产精品乱人伦一区二区| 久久久久久久尹人综合网亚洲| 一本一本大道香蕉久在线精品| 在线看国产日韩| 亚洲伦理在线| 亚洲电影免费| 免费成人小视频| 亚洲国产精品成人久久综合一区| 欧美一区二区三区喷汁尤物| 亚洲精品美女91| 亚洲男人的天堂在线观看| 亚洲精品一区在线观看香蕉| 欧美一区二区三区四区高清| 久久大逼视频| 欧美在线视频免费播放| 国产精品久久久久天堂| 一区二区三区精品视频| 亚洲欧洲一区二区在线播放 | 日韩午夜在线观看视频| 亚洲图片在区色| 久久亚洲精品欧美| 国产精品v欧美精品v日韩精品| 91久久国产综合久久| 久久这里只精品最新地址| 久久精品二区亚洲w码| 欧美在线啊v| 国产一区二区福利| 一区二区在线观看视频| 国产欧美精品久久| 亚洲精品久久久久久久久久久久久| 久久国产精品一区二区三区四区 | 久久狠狠久久综合桃花| 久久久久成人精品| 日韩视频在线观看| 久久综合一区二区| 亚洲人成7777| 亚洲免费影视第一页| 欧美顶级艳妇交换群宴| 最新国产精品拍自在线播放| 玖玖玖免费嫩草在线影院一区| 亚洲专区一二三| 国产伦精品一区二区三区视频黑人| 亚洲欧美区自拍先锋|