Reborn-開始嵌入式數據庫開發 -- 使用sqlite建立嵌入式Web系統1
由于本系統落于某單板系統上,與嵌入式軟件有復雜的調用和復用邏輯。從簡單入手,
硬件系統為PPC單板×N,底層功能已經完成。目標是一個可控的Web管理系統。
數據庫建立為在montavista的虛擬文件系統中,創建一個xx.db文件,然后在板子上通過
sqlite命令行直接建表。這部分直接省略了,沒有存儲過程,沒有表間關系,盡量簡單點。
服務器端可使用的容器很多,這邊不一一列舉,反正開源。做好makefile直接移植到mt-linux。
數據庫的設計思路如下:
用戶認證、數據讀取、數據保存。 這三個模塊夠了,數據是啥米啊?先別管。數據讀取是
指從單板的應用層直接先保存數據到db,前端web頁面再從db讀取。數據保存是指前端web保存
數據到db,應用層偵測到數據變化后,通過任務存放變化數據到寄存器、全局變量。
前端頁面采用Html-cgi轉化為C代碼,通過cross-complie工具生成執行文件cgi,scp至單盤的工作目錄。
嵌入式服務器的配置部分需要把默認路徑指向工作目錄,這樣輸入http://192.168.1.1(偽,IP自己定好)
這樣的東東時,直接調用cgi,webserver始動,怎么動我就不管了。
前端頁面之數據讀取--核心代碼--如下
--一小段Sqlite接口調用--
1
sqlite3 *db=NULL;
2
char *zErrMsg = 0;
3
int rc;
4
char **azResult;
5
int nrow = 0, ncolumn = 0;
6
rc = sqlite3_open("/xx.db", &db); //打開指定的數據庫文件,如果不存在將創建一個同名的數據庫文件
7
if( rc )
8
{
9
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
10
sqlite3_close(db);
11
exit(1);
12
}
13
char * sql = "SELECT * FROM table1 where id = 1 ";
14
sqlite3_get_table( db , sql , &azResult , &nrow , &ncolumn , &zErrMsg );

2

3

4

5

6

7

8

9

10

11

12

13

14

這種代碼在docin上找sqlite使用文檔吧,一般都是這樣,這種封裝的接口有利有弊,先用著吧。
現在從web頁面取一段數據應該沒問題了。
posted on 2011-03-08 14:30 泡泡龍龍 閱讀(182) 評論(0) 編輯 收藏 所屬分類: embedded-Linux