SQLite是一個輕量級的嵌入式數據庫,在PC上大可不用它,但是在WINCE上,他就起很大作用了(Access在WINCE上停止升級,SQL CE又太龐大)。
* 在Lazarus for WIN32上使用SQLite
1. 安裝SQLite for WIN32: VC2005編譯SQLite, http://blog.csdn.net/hellogv/archive/2008/05/06/2399700.aspx ,把編譯後的sqlite3.dll放在Windows系統文件夾之下;也可以直接到 www.sqlite.org下載現有的sqlite3.dll。
2. 安裝LAZARUS的SQLite控件:\lazarus\components\sqlite\sqlite3laz.lpk
在WIN32編寫好SQLite數據庫程序,然後修改編譯器,從而生成WINCE平台下的數據庫程序,這樣可以大大減少交叉編譯~調試所浪費的時間!
* 在Lazarus for WINCE上使用SQLite
1. 編譯得到SQLite3.dll for wince
2. 先進LAZARUS Application工程,添加SQLITE3DATASET控件
3. 您必須先設定項目的編譯器屬性,請點選選單項目: Project > Compiler options...,點選Path分頁,並把LCL Widget改編為Wince;點選Code分頁,並把target platform改變為arm-wince。
4. 編譯時會提出Fatal: Can't find unit PropEdits used by registersqlite3 這樣的錯誤,這時就需要修改\lazarus\components\sqlite\registersqlite3.pas的代碼
5. 把PropEdits,ComponentEditors,SqliteComponentEditor 注釋掉; 把RegisterComponentEditor(TSqlite3Dataset,TSqliteEditor) ; RegisterPropertyEditor(TypeInfo(String),TSqlite3Dataset,'FileName',TFileNamePropertyEditor); 注釋掉
6. 重新編譯即可通過。
附:使用DBGrid等一小部分數據敏感控件時,即使編譯通過,但是在WINCE上運行還是會提出“Access violation ”這類錯誤,DBEDIT等其他數據敏感控件則可以正常使用!