嵌入式資料庫sqlce和sqlite的使用方法(sqlite)

來源:互聯網
上載者:User

 

二. 在wince上使用sqlite資料庫:
 1. 環境:EVC4 + sp4
 1). 在 http://sqlite-wince.sourceforge.net/ 中下載 SQLite for Windows CE 的DLL 原始碼.
 2). eVC裡建立一個“WCE Dynamic-Link Library”工程,命名為:sqlite
  3). 在接下來的對話方塊中選擇"An empty Windows CE DLL project",點擊 FINISH,之後再點擊 OK
  4). 將源碼中所有的 *.c *.h *.def 複製到工程檔案夾下
  5). 添加所有除shell.c和tclsqlite.c檔案外所有檔案到項目中。
  6). 編譯產生sqlite.lib和sqlite.dll.

  2. 在 http://softvoile.com/development/CppSQLite3U/下載 高人用C++封裝的sqlite的類,(基於上面產生的sqlite.lib)
    一般來講,我們都會是先在windows上使用sqlite的資料庫,並匯入基礎資料。然後把資料庫copy到wince裡,再操作。
     此類是封裝的sqlite的unicode函數,能在windows下和wince下都正常使用,但有一點要注意:
如果要在windows下使用,因為VC6預設是建的_MBCS項目,而如果要調用unicode的函數,產生utf16資料以供在wince下能正常顯示中文,則需要把項目的編譯參數從_MBCS
改為:UNICODE _UNICODE。
  3. 這下我們就可以在evc4裡面操作sqlite資料庫了:
  //開啟資料庫

 CppSQLite3DB db;
 //開啟或建立一個資料庫
 db.open(L"//ding.db");

  //建立表
   db.execDML(L"create table sninfo(id nchar(12), area nvarchar(6), info nvarchar(60),source nchar(6), target nchar(6))");
   
  //查詢
  CppSQLite3Query q = db.execQuery(L"select * from sninfo where area='廣州區'");
  CString strTemp;
  while (!q.eof())
        {
   strTemp.Format(_T("%s-%s-%s-%s"),q.fieldValue(0),q.fieldValue(3),q.fieldValue(4),q.fieldValue(1));
   m_list.AddString(strTemp); //顯示到listbox控制項中
   q.nextRow();
  }
  q.finalize();

  db.close();
 
 4.對sqlite的資料庫操作就介紹到這裡,我目前也就用了這麼多,更多的我也需要學習,在windows下用sqlite要注意一點的是,資料庫的路徑中不要含有中文字,否則會開啟失敗,如果非要用中文,那必須得轉成utf-8才行,sqlite內部是通過utf-8來讀取的。(wince下可以正常使用中文路徑,因為wince預設就是unicode編碼)

三. 後記
 對比了一下sqlce和sqlite在查詢50W記錄時的效能,都可以在2秒鐘之內完成,(一開始我沒建index,查了4分多鐘,暈),一定記得要建索引哦。否則查詢N慢。
 文筆不好,水平有限,記錄的不是很清楚,寫得不對的地方還請大家指正,一起學習一起進步。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.