軟件環境:WindowXP 、Red Hat 5.0
硬件環境:ARM9
移植源碼:http://www.sqlite.org/sqlite-autoconf-3071400.tar.gz
--------------------------------------------------------------------------------------------------------
移植:
#tar –zxvf sqlite-autoconf-3071400.tar.gz
#mkdir /opt/ruanjian/ sqlite-3.7.14
#CC=arm-linux-gcc ./configure –prefix=/opt/ruanjian/sqlite-3.7.14 --host=arm-linux --disable-tcl
#make && make install
完成後將“/opt/ruanjian/sqlite-3.7.14/lib”下的“libsqlite3.so、libsqlite3.so.0、libsqlite3.so.0.8.6”下三個文件拷貝到ARM9中根目錄下lib中同時將編譯時產生的sqlite3(/opt/ruanjian/sqlite-3.7.14/bin目錄下)拷貝到ARM9中根目錄下的bin中這個文件可以作爲一個命令使用它可以創建數據庫、創建表、插入數據等操作詳見請使用“sqlite3”—>“.help”。
使用時如遇以下問題按文檔所示操作即可解決。
如上圖所示紅框問題,即輸入字符後使用退格鍵進行清除時不能進行清除操作。
解決辦法是結束sqlite程序(移植時sqlite自動生成一個可執行文件)然後在超級終端輸入“stty erase ^H”即可。
--------------------------------------------------------------------------------------------------------
sqlite3 SQL語句相關操作
(1)table的創建、修改、刪除
創建表:“create table test(ID int);”
修改表:“alter table test add column NAME varchar(10);”
刪除表:“drop table test;”
(2)表的導入導出
導出*.txt、*.csv文件
注:如果是導出爲csv文件則sqlite3數據庫的段要設置爲用逗號分開這樣才能出現如圖1所示的正確結果。不然則出現圖2所示不正確結果,圖2所用的是“|”的顯示方式。
導入到表
這裏導入csv文件要正確導入sqlite3數據庫的段要設置爲用逗號分開纔行。
--------------------------------------------------------------------------------------------------------
C語言下的一個簡單實例:
下面編寫是一個對sqlite3的最常用函數的基本操,包括數據庫的建立,在數據庫中建立表並插入信息以及最後關閉數據。下面這個程序名字是“sqlite”。
#include <stdio.h>
#include"/opt/ruanjian/sqlite-3.7.14/include/sqlite3.h"
int main(int argc, char *argv[])
{
printf("Hello, world\n");
sqlite3 *db;
char *sql1 = "CREATE TABLE SensorData(ID INTEGER PRIMARY KEY,SensorID INTEGER,SiteNum INTERER,Time VARCHAR(12),SensorParameter REAL);";
char *sql2 = "INSERT INTO 'SensorData' VALUES(NULL,101,261,'20100314',18.9);";
/*如果不存在數據庫則建立數據庫並打開,存在則打開*/
sqlite3_open("test.db",&db);
printf("open the test.db\n");
/*執行SQL語句這裏是建表*/
if(SQLITE_OK != sqlite3_exec(db,sql1,NULL,NULL,NULL))
{
printf("create the table failed!\n");
exit(1);
}
printf("create a table success\n");
/*執行SQL語句這裏是插入信息*/
if(SQLITE_OK != sqlite3_exec(db,sql2,NULL,NULL,NULL))
{
printf("insert the table failed!\n");
exit(1);
}
printf("insert message success\n");
/*關閉數據庫*/
sqlite3_close(db);
printf("close the test.db\n");
return 0;
}
注:編譯命令arm-linux-gcc sqlite.c -o sqlite -lsqlite3 -L/opt/ruanjian/sqlite-3.7.14/lib
測試:
啓動應用程序:
執行過程中輸出信息:
執行結果(這裏用sqlite3來查看):