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