Lazarus開發使用SQLite的WinCE項目

來源:互聯網
上載者:User
SQLite是一個開源的小型資料庫,它可以在WinCE上正常工作,本文講述的,就是如何在WinCE開發中使用它。
首先,我們需要相關的開發工具,SQLite沒有可視化的管理工具,它提供了一個命令列下的工具,用於建立資料庫。下載了SQLite3後,會找到SQlite3.exe和SQlite3.dll,其中EXE就是命令列工具了。

我們用命令來建立一個測試用的資料庫,如下:
sqlite3 myTest.db
create table Demo(uid integer, uname varchar(50));
insert into Demo values(1,'a');
insert into Demo values(2,'b');
insert into Demo values(3,'c');
.quit

這時就能看到在sqlite3.exe相同的目錄下,產生了myTest.db這個檔案,當然了,裡麵包含了一個名為Demo的表,要查詢表中內容可以用以下語句
sqlite3 myTest.db
select * from Demo;
.quit

以上的命令是在PC上執行的,它藉助了sqlite3.dll完成相應的功能,但是在Windows Mobile下,顯然不能夠使用PC上的dll,我們需要用源碼自行編譯相關的dll。

從SourceForge上下載到sqlite-ce-source
3.3.3之後,解壓,然後在VC6裡建立一個Library工程,把source內除了tclsqlite.c外,所有的檔案添加到這個工程內,編譯工
程。編譯後即產生sqlite3.dll,這個dll可以放到Windows Mobile下使用了。

我使用的是VC6來編譯sqlite3.dll,您也可以用C++Builder,DEV C++,或是Visual Studio 2008內的VC++.NET來編譯這個dll,編譯的效果是一樣的。

建好了資料庫之後,就要進行程式的開發了,我在此選擇Lazarus進行開發。當然了,如果你喜歡用C++,Java或C#進行開發,也是一樣的,用.NET或Java語言開發時,需要多下載一個對應的Wrapper,用原生語言開發則不需要多下載東西。

為了使程式體積更小,我們需要使用KOLCE,關於KOLCE的使用,請去以下文章:點擊進入

假設您已經會使用lazarus和KOLCE,那麼下面就開始進行開發了。我們會碰到一個小小的問題,就是lazarus內建的DB Connection不支援SQLite。這時我們需要藉助一套第三方的控制項,那就是Zeos DBO。
ZeosDBO 是使用Delphi開發的一套強勁的資料操作控制項,它也有Lazarus相關的版本,您可以從SourceForge上獲得它,它是免費且開源的。

根據Zeos
DBO的文檔所述,在要Lazarus上安裝只需要編譯並安裝ZComponents.lpk即可。安裝時會自動安裝其餘的4個包,Zeos
DBO的安裝時間相當的久,以我電腦4核+4G記憶體的配置都要將近5分鐘才能安裝完成,安裝期間lazarus會發生沒有響應的現象,系統反應也相當的
慢,請不要在意,並耐心的等待。

安裝Zeos DBO時,或許會發生另一個問題,如果您以前安裝過KOLCE,那麼會報一個KOL.o和KOL.ppu
重複存在的錯誤,此時需要把MCK目錄下的lib目錄刪除,並重新編譯KOLCE。

安裝Zeos DBO成功後,會在控制項面板上看到多出一組控制項,:

下面我們可以進行真正的開發了,建立一個工程,設定視窗大小為240x320,這個解析度是My Phone螢幕的大小,您可以跟據您的手機實際的解析度來設定大
小。然後往表單上拖放一個TKOLListBox,一個TZConnection,一個TZQuery。設定ZQuery的Connection屬性為
ZConnection。

編寫一些簡單的代碼來完成資料的查詢和顯示。

可以看到,這些代碼與在Delphi中的操作非常類似。有幾點需要注意:
1. KOLListBox中,Items屬性是字串,因此不能夠Items.Clear,也不能夠Items.Add()。能用的方法只是ListBox.Clear和ListBox.Add。
2. SQLite的資料庫必須使用完整的路徑,不能使用相對路徑。
3. SQLite的SQL語句最後都必須帶上分號,以示這一行語句結束。

好了,現在可以編譯器了。編譯成功後,我們要運行程式,以測試程式工作是否正常。此時又會碰到一個問題,就是用Windows
Mobile模擬器,無法將資料庫部署上去,也無法將相關的DLL部署上去。這個時候有兩種解決辦法,一種是使用Microsoft
ActiveSync,把相關檔案直接拷進模擬器,另一種就是擁有一台真實的Windows Mobile。我使用的是後一種方法。

部署需要的東西很簡單,剛才開發的程式,sqlite3.dll,myTest.db,全部拷到手機裡。然後執行exe檔案。

到此為止,一個簡單的示範程式就完成了,對於使用Delphi的開發人員來說,要上手lazarus是非常容易的,而且Zeos DBO的操作方式幾乎與DBGO完全一樣,這使得Delphi開發人員能無縫的過渡到Lazarus。
對於SQLite,它體積小,操作也很簡單,而且資料訪問速度很快,越來越多的PPC應用程式使用了它作為本機資料庫。另外,SQLite的開源也使開發人員能夠更深入的瞭解它的本質,從而對它作出改進,以滿足不同使用者的不同需要。

相關文章

聯繫我們

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